web靶场——xss-labs靶机平台的搭建和代码审计

这篇具有很好参考价值的文章主要介绍了web靶场——xss-labs靶机平台的搭建和代码审计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、web靶场-xss-labs靶机平台的搭建

1、将下载好的压缩包放置php的WWW根目录下

2、配置网站

3、启动MYSQL和Nginx

4、完成后我们就可以在浏览器输入127.0.0.1:8088进入靶场

二、xss-labs靶场通关攻略

第一关:

1、输入代码进行测试:源代码

我们直接将参数插入标题试一试

第二关:

1、尝试插入代码

2、查看网页源码

3、查看源代码

4、绕过思路

方法一:input标签

方法二:使用onclick点击事件

第三关:

1、尝试插入代码

2、查看网页源码

3、查看源码

4、绕过思路

方法一:onmouseover事件

方法二:onclick函数

第四关:

1、输入代码进行测试:

2、查看页面源码

3、查看源码

4、绕过思路

方法一:onmouseover标签:

方法二:onfocus标签:

第五关:

1、输入代码进行测试:

2、查看网页源码

3、查看源码

4、绕过思路

第六关:

1、输入代码进行测试:

2、查看网页源码

3、查看源码

4、绕过思路

第七关:

1、输入代码进行测试:

2、查看网页源码

3、查看源码

​​​​​​​4、绕过思路

第八关:

1、输入代码进行测试:

2、查看网页源码

3、查看源码:

4、绕过思路

方法一:

原理:

第九关:

1、输入代码进行测试

2、查看网页源码

3、查看源码

4、绕过思路

方法一:

方法二:

第十关:

1、输入代码进行测试

2、查看网页源码

3、查看源码

4、绕过思路

方法一: 

方法二:

第十一关:

1、输入代码进行测试

2、查看网页源码:

3、查看源码

4、绕过思路

方法一:

方法二:

第十二关:

1、输入代码进行测试:

2、查看网页源码

3、查看源码

4、绕过思路,参考第十关

方法一:

方法二:

第十三关:

1、输入代码进行测试:

2、查看网页源码

3、查看源码

4、绕过思路

方法一:

方法二:

第十四关:

1、输入代码进行测试:

2、查看网页源码

3、查看源码

4、绕过思路

第十五关:

1、输入代码进行测试

2、查看网页源码

3、查看源码

4、绕过思路

方法一:

方法二:

第十六关:

1、输入代码进行测试:

2、查看网页源码

3、查看源码

4、绕过思路

方法一:

方法二:

第十七关:

1、输入代码进行测试:

2、查看网页源码

3、查看源码

< embed >:外部内容嵌入元素

4、绕过思路

方法一:

方法二:

第十八关:

1、输入代码进行测试:

2、查看网页源码

3、查看源码

4、绕过思路

第十九关:

1、不管了,直接查看源码

2、绕过思路

第二十关:

1、直接查看源代码

2、绕过思路


一、web靶场-xss-labs靶机平台的搭建

githhub下载连接:https://github.com/do0dl3/xss-labs

配置环境:

php小皮面板下载:小皮面板(phpstudy) - 让天下没有难配的服务器环境! (xp.cn)

具体配置教程:VScode的PHP远程调试模式Xdebug奈何@@的博客-CSDN博客

1、将下载好的压缩包放置php的WWW根目录下

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

2、配置网站

这里我为了区别其他配置环境,新建了一个网站,

注意:

  • 端口号选择一个不被占用的端口

  • 根目录:‘\phpstudy\phpstudy_pro\WWW\xss-labs-master’

  • 最好使用5.xx本版

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

3、启动MYSQL和Nginx

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

4、完成后我们就可以在浏览器输入127.0.0.1:8088进入靶场

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

二、xss-labs靶场通关攻略

第一关:

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

1、输入代码进行测试:源代码

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

我们直接将参数插入标题试一试

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

通关成功!!!

过关总结: JS弹窗函数alert()

第二关:

可以看到这一关多了一个搜索框

​​​​​​​

1、尝试插入代码

我们尝试注入:

可见一些关键字可能被过滤了

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入


 

2、查看网页源码

​​​​​​

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

3、查看源代码

htmlspecialchars函数对<>实体化转义

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

4、绕过思路

构造闭合input标签,将导致<转义的”闭合住,再次进行XSS注入

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

方法一:input标签

"><script>alert(1)</script>

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

方法二:使用onclick点击事件

aa"οnclick="alert(1)

点击搜索框:

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

通关成功!!!

本关小结:闭合绕过

第三关:

个人感觉是第一关和第二关的结合体

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

1、尝试插入代码

"<script>alert(1 )<lscript>"

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

2、查看网页源码

可见,< > "" 都被实体化了 但是单引号貌似没有被转义

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

3、查看源码

htmlspecialchars函数对<>大于小于号进行html实体化

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

4、绕过思路

使用单引号构造闭合

'<script>alert(1)</script>' 

但是我发现即使闭合后提交搜索仍旧无法撤销,可以看到点击搜索框提交无法触发XSS

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

方法一:onmouseover事件

onmouseover事件的效果是当我们的鼠标碰到input标签的位置,也就是搜索框时,会执行onmouseover事件。最常与 <input>、<select> 和 <a> 标签一起使用,简单来说,onfocus事件就是当输入框被点击的时候,就会触发myFunction()函数,然后我们再配合javascript伪协议来执行javascript代码

' οnmοuseοver=javascript:alert(1) '

提交后我们把鼠标移到搜索框触发onmouseover事件。

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

方法二:onclick函数

aa’οnclick=‘alert(1)

点击搜索框:

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

通关成功!!!

本关小结: onfocus和onclick可以绕过html实体化(即<>号的过滤)

第四关:

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

1、输入代码进行测试:

我们尝试使用onmouseover进行XSS测试

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

无法触发

2、查看页面源码

可见这关将双引号给过滤了

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

3、查看源码

        过滤< > 大于小于号

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

4、绕过思路

我们尝试使用双引号进行闭合

方法一:onmouseover标签:

" οnmοuseοver=javascript:alert(1) "

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

方法二:onfocus标签:

" οnfοcus=javascript:alert() "

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

通关成功!!!

本关小结:onmouseover标签和onfocus标签+双引号闭合绕过

第五关:

1、输入代码进行测试:

尝试上一关XSS注入漏洞方式:

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

2、查看网页源码

尝试上一关XSS注入漏洞方式:发现on 被过滤

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

尝试用<script>注入:

可见script也被过滤了

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

但是我们查看此时网页界面,发现alert(1)逃逸出来,但是没有执行:

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

3、查看源码

$_GET["keyword"]
将所有字母转换成小写

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

4、绕过思路

尝试使用javascript伪协议绕过试试

知识点补充:JavaScript伪协议实际上是把javascript:后面的代码当JavaScript来执行,并将结果值返回给当前页面。

a href=javascript:alert('1')

还是未能绕过

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

查看web源码

发现<>被后面的>闭合,导致代码未能逃逸出来,无法执行,同时还有一个双引号防止双引号逃逸

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

因此,修改代码如下

添加一个标签得闭合前面的标签,构造闭合后新建一个=payload标签,在其中使用伪协议进行绕过

"><a href=javascript:alert('1')>

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

通关成功!!!

本关小结:可以插入标签(如<a>标签的href属性)达到js执行的效果,前提是闭合号<"">没失效

第六关:

我们先按前五关来测试一下

1、输入代码进行测试:

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

2、查看网页源码

可见这一关将href也给过滤了

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

3、查看源码

可见将script、on、src、data、href过滤了,也将所有字母转小写

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

4、绕过思路

其余关卡的执行代码测试之后也无法绕过

我们发现<> 、“ ”、‘ ’、script、href、javascript等都被过滤

这时我们换一个思路,我们尝试这一关的大小写是否被过滤

构造代码:

"><ScriPt>alert(1)</ScrIpt>

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

通关成功!!!

本关小结:大小写法绕过str_replace()函数

第七关:

老规矩,把上一关的代码进行测试:

1、输入代码进行测试:

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

​​​​​​​2、查看网页源码

可以发现,script直接变成了空值

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

3、查看源码

  • 将所有字母转小写

  • 过滤以下关键字:script、on、src、data、href

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

​​​​​​​4、绕过思路

我们换个思路——双写来对应替换成空值这一注入绕过问题

例如:script,可以写成scscriptipt,当script被删掉的时候,就变成了script

注意这个加入的script不能分开,识别到后这个加入的script会被替换成空值,剩下的部分自动拼接,执行时空格会被自动忽略。

"><sscriptcript>alert(1)</sscriptcript>

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

通关成功!!!

关小结:双拼写绕过删除函数

第八关:

1、输入代码进行测试:

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

2、查看网页源码

输入任意字符,查看其输出路径:

可见在href下输出

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

尝试使用javascript注入:

javascript:alert(1)

发现javascript被过滤了

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

尝试大小写绕过:

发现大小写也被过滤:

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

3、查看源码:

  • 将所有字母转换成小写

  • 将单引号 ' ' 替换为实体字符双引号 " "

  • 过滤以下关键字:script、on、src、data、href

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

4、绕过思路

尝试将javascript编写成urlcode代码进行绕过

<span style="background-color:#f8f8f8"><span style="color:#333333">javascript:alert(1)
javascript%3Aalert%281%29</span></span>

绕过失败,无法解析

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

方法一:

尝试利用利用href的隐藏属性自动Unicode解码,插入一段js伪协议尝试

原理:

编码顺序:urlcode html unicode javascript

因此,在使用html实体编码转义后javascript后,执行时首先将html 转换成javascript,从而绕过

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;:alert(1)

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

可见应该javascript已经插入到href中:

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

通关成功!!!

本关小结: href属性自动解析Unicode编码

第九关:

1、输入代码进行测试

aaaa

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

连接不合法?那我们加上合法连接模式

2、查看网页源码

http://www.baidu.com JavaScript:Alert(1);

可见javascript被过滤了

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

3、查看源码

可以看到和上一关差不多:

  • 将所有字母转换成小写

  • 将单引号 ' ' 替换为实体字符双引号 " "

  • 过滤以下关键字:script、on、src、data、href

但是其中加了一个if条件判断语句,如果传入的值中没有http://就会返回false

如果我们要想构造payload进行绕过,必须加入http://字符,但同时还要注释掉,否则无法触发

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

4、绕过思路

由于javascript被过滤了,我们尝试将script进行html编码,尝试绕过,同时将http://进行注释,从而构造payload进行绕过

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

方法一:

Java&#115;&#99;&#114;&#105;&#112;&#116;:Alert(1);//http://

没有报错

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

绕过成功!!!

方法二:

将http:// 放在alert(’ ‘)进行注释:

 java&#115;&#99;&#114;&#105;&#112;&#116;:alert('http://'

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

绕过成功!!!

本关小结:将javascript进行编码绕过,同时将指定必须要的字符http://加入并且注释掉即可

第十关:

1、输入代码进行测试

这一关没有input,我们首先在浏览框输入代码进行测试

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

2、查看网页源码

可以看见这一关有三个隐藏表单

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

没办法,我们来查看以下源码吧

3、查看源码

可以看到:

  • 将所有字母转换成小写

  • 过滤tsort

  • 过滤>转义成空

  • 过滤<转义成空

  • 同时还有三个隐藏表单

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

4、绕过思路

我们将隐藏表单的关键字拿出来依次尝试:

关键字t_link,传参失败

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

关键字t_history,传参失败

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

关键字t_sort,传参成功

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

由此可见传参值是t_sort

方法一: 

由于这里的输入框被隐藏了,我们使用onclick标签。添加type="text"来构造payload进行绕过

http://127.0.0.1:8088/level10.php?t_sort=aaaaa%22%20type=%22text%22%20onclick=%22alert(1)

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

过关成功!!!

方法二:

也可以使用onfocus事件构建payload进行绕过

http://127.0.0.1:8088/level10.php?t_sort=aaaaa%22%20onfocus=javascript:alert()%20type=%22text

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

过关成功!!!

本关小结:根据隐藏form表单的参数名,尝试哪一个是正确的传参值,之后在隐藏的input标签中插入type="text显示输入框,构造闭合payload进行绕过

第十一关:

1、输入代码进行测试

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

没有反应

2、查看网页源码:

出现了熟悉的隐藏表单

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

3、查看源码

可以看到:

  • 将所有字母转换成小写

  • 过滤tsort

  • 过滤HTTP_ERFERER

  • 过滤>转义成空

  • 过滤<转义成空

  • 同时还有四个隐藏表单

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

4、绕过思路

按照上一关的思路来

关键字t_link,传参失败

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

关键字t_history,传参失败

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

关键字t_sort,传参成功

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

关键字t_ref,传参失败

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

但是按照上一关尝试发现无法绕过:

发现这一关将双引号  " " 给转码了,导致无法闭合

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

我们换个思路,这一关有四个<input>标签的值都做了隐藏处理,最后一个t_ref的<input>标签是http头referer的参数

我们的传参思路出现错误,我们不应该在get里面传参,而是伪造http的head头,即REFERER进行传参

这时候我们需要使用一个很好用的渗透工具——Hackbar在firefox浏览器下安装老版本hackbar_奈何@_@的博客-CSDN博客

我们首先测试一下前三个是否能够在REFERER传参

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

在尝试t_ref下传参

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

可见传参成功

之后就和上一关思路大致相同

方法一:

使用onclick标签,添加type="text"来构造http头进行绕过

Referer:"type="text" onclick="alert(1)

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

过关成功!!!

方法二:

使用onfocus标签,构造一个http头进行绕过

Referer: " onfocus=javascript:alert(1) type="text

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

过关成功!!!

本关小结:本关主要是referer,伪造http的head头,在隐藏的input标签中插入type="text显示输入框,构造闭合payload进行绕过

第十二关:

1、输入代码进行测试:

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

2、查看网页源码

又出现四个隐藏<input>

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

根据上一关经验,肯定是User-Agent头,我们使用Hackbar工具插入测试代码

可见我们的猜想是正确的

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

3、查看源码

可以看到:

  • 将所有字母转换成小写

  • 过滤tsort

  • 过滤HTTP_USER_AGENT

  • 过滤>转义成空

  • 过滤<转义成空

  • 同时还有四个隐藏表单

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

4、绕过思路,参考第十关

方法一:

使用onclick标签,添加type="text"来构造UA头进行绕过

aaa"type="text" onclick="alert(1)

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

过关成功!!!

方法二:

使用onfocus标签,构造一个UA头进行绕过

" onfocus=javascript:alert(1) type="text

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

过关成功!!!

本关小结:思路和10,11关大致相同,主要是http头部传参

第十三关:

1、输入代码进行测试:

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

没什么头绪,我们来看一下网页源码:

2、查看网页源码

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

我们又看到了熟悉的配方——直接看一下cook

使用Hackbar进行测试

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

好了,到了这里思路就简单明了了

照例再查看一下源码

3、查看源码

可以看到:

  • 将所有字母转换成小写

  • 过滤tsort

  • 过滤>转义成空

  • 过滤<转义成空

  • 同时还有四个隐藏表单

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

4、绕过思路

参考10,11,12,13关

方法一:

使用onclick标签,添加type="text"来构造USER头进行绕过

user=" onclick=alert() type="text 

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

过关成功!!!

方法二:

使用onfocus标签,构造一个USER头进行绕过

user=" onfocus=javascript:alert(1) type="text

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

过关成功!!!

本关小结:思路和10,11,12关大致相同,主要是http头部传参

第十四关:

1、输入代码进行测试:

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

2、查看网页源码

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

3、查看源码

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

4、绕过思路

由于这一关网站挂了,所以不在演示了

说一下思路吧

这一关是利用转跳的网站,在那网站去上传一个,属性里面含有xss代码的图片,以达到弹窗的效果

第十五关:

1、输入代码进行测试

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

没什么思路,直接看一下网页源码

2、查看网页源码

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

在如图所示的ng-include下输出,但是ng-include是什么?

ng-include指令就是文件包涵的意思,用来包涵外部的html文件,如果包涵的内容是地址,需要加引号

3、查看源码

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

4、绕过思路

        既然ng-include指令就是文件包涵的意思,而这一关需要我们自己走出去,,并且ng-include可以包涵的内容是地址,需要加引号

因此,我们尝试采用ng-include包含一下第一关的html,看能否绕过这一关

127.0.0.1:8088/level15.php?src='/level1.php'

 xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

可以看见我们已经将第一关的html包含到第十五关,那么接下来我们该怎么做呢?

我们先测试一下这一关过滤了那些东西

src= ' " <>%20 AAaa OnCliCK <script> <a hReF=javascript:alert()>

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

可见,' " <> 空格都被过滤了,由此可猜测又html实体化函数存在

这时我们可以选择在包含第一关的html 后在这一页面将触发第一关的绕过,但是这里不能包涵那些直接弹窗的东西如<script>,但是可以包涵那些标签的东西比如<a>、<input>、<img>、<p>标签等等,这些标签是能需要我们手动点击弹窗的),这里我们使用input标签

方法一:
?src='/level1.php?name=<input src=1 onmouseover=alert()>'

当鼠标移动到输入框时就出发了弹窗

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

绕过成功!!!

方法二:

也可以使用p标签,构造payload

?src='/level1.php?name=<p onmousedown=alert()>aaa</p>'

点击aaa即可绕过

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

绕过成功!!!

本关思路:ng-include文件包涵,可以无视html实体化

第十六关:

1、输入代码进行测试:

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

没什么思路,查看网页源码

2、查看网页源码

可见aaaaa插入到了center标签中

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

依旧没什么思路,直接看源码

3、查看源码

可以看到:

  • 将所有字母转换成小写

  • 将script转换成空格,然后将空格实体化

  • 将 / 转换成空格,然后将空格实体化

    xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

4、绕过思路

空格已经不能用了,那我们查一下可以代替空格的编码

  • 在URL中,空格通常被编码为 "%20"

  • 在HTML中,空格通常被编码为 " " 或 " "

  • 可以用回车来代替绕过,回车的url编码是%0a

方法一:

将空格替换构造payload

?keyword=<svg%20onload=alert(1)>

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

绕过成功!!!

方法二:

也可以用img标签构造payload绕过

keyword=<img%0Asrc=1%0aonerror=alert(1)>

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

绕过成功!!!

本关思路:回车代替空格绕过检测

第十七关:

1、输入代码进行测试:

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

这里可以看见他能传两个参数:a,b

没什么思路,测试一下关键字吧

?arg01=" ' / sRc DaTa OnFocus OnmOuseOver OnMouseDoWn P <sCriPt> <a hReF=javascript:alert()>;

2、查看网页源码

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

可以见到添加了html转义字符,但是embed标签是什么?

3、查看源码

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

可以看到后缀名为swf的文件(FLASH插件的文件,现在很多浏览器都不支持FLASH插件了)

< embed >:外部内容嵌入元素

HTML <embed> 元素将外部内容嵌入文档中的指定位置。此内容由外部应用程序或其他交互式内容源(如浏览器插件)提供。​​​​​​​

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

4、绕过思路

方法一:

你有FLASH插件

构造payload

?arg01=a&arg02 onfocus=alert(1)

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

绕过成功!!!

方法二:

没有FLASH插件

将后端第十七关的代码(level17.php)指向的swf文件改为index.png

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

保存后再次打开十七关:

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

好大一张脸!!

接着我们构造payload进行绕过

?arg02= onclick=alert()

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

绕过成功!!!

本关小结:< embed >:外部内容嵌入元素与触发事件

第十八关:

1、输入代码进行测试:

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

看起来和17关差不多

2、查看网页源码

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

果然出现了embed:外部内容嵌入元素

看来解决思路和上一关基本相同

3、查看源码

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

4、绕过思路

直接测试一波过滤,构建Payload进行绕过

?arg02=" ' sRc DaTa OnFocus OnmOuseOver OnMouseDoWn P <sCriPt> <a hReF=javascript:alert()>;

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

还是html实体化函数

这一次我在FLASH中心浏览器进行测试,这个浏览器具备FALSH环境

?arg02= onmousedown=alert()

点击一下黑色embed标签区域:

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

绕过成功!!!

本关小结:FLASH插件

第十九关:

1、不管了,直接查看源码

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

2、绕过思路

又是embed,直接上上一关payload

?arg02= onmousedown=alert()

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

发现被双引号给闭合了

换个思路,使用javascript

?arg01=version&arg02=<a href="javascript:alert()">here</a>

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

绕过成功!!!

第二十关:

1、直接查看源代码

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入

2、绕过思路

可见这里也有双引号闭合,没办法,直接构建palyoad

详细参考这篇文章:XSS-labs Level 20 Flash XSS_baynk的博客-CSDN博客

?arg01=id&arg02=xss\"))}catch(e){alert(1)}//%26width=123%26height=123

xss-labs搭建,网络渗透防御,xss,网络安全,渗透攻击’,XSS注入文章来源地址https://www.toymoban.com/news/detail-756339.html

到了这里,关于web靶场——xss-labs靶机平台的搭建和代码审计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • xss-labs初学者通关详解1-18

    很久的一篇文章 有错误请指正~ 目录 xss漏洞  level1-无过滤机制 level2-闭合标签  level3-单引号闭合+添加事件  level4-双引号闭合+添加事件 level5-新建标签 ​level6-大小写绕过  level7-双写绕过 level8-编码绕过 ​level9-检测 level10-隐藏信息 ​level-11Referer信息  level-12user-agent信

    2024年02月06日
    浏览(22)
  • 搭建sql-labs靶机环境

    先下载phpstudy(小皮面板)软件,方便我们快速搭建环境,该软件程序包集成最新的Apache+PHP+MySQL+ngix,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境.该程序不仅包括PHP调试环境,还包括了开发工具、开发手册等.总之学习PHP只需一个包。 对学习PHP的新手来说,

    2024年02月22日
    浏览(17)
  • Web漏洞-XSS理论和靶场小试牛刀(一)

    ★★实战前置声明★★ 文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。 想要知道怎么XSS攻击,是需要了解一些HTML和JS基础知识点的,不然后面一些脚本注

    2024年02月05日
    浏览(29)
  • Web漏洞-XSS实验-pikachu靶场5个场景(二)

    ★★实战前置声明★★ 文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。 上一篇《Web漏洞-XSS理论和靶场小试牛刀(一)》已经介绍了XSS一些理论知识点,本文

    2024年02月05日
    浏览(25)
  • upload-labs靶场的安装搭建

    1、首先安装phpstudy的环境,下载进行安装 2、然后到GitHub去下载upload-labs的源码 GitHub:https://github.com/Tj1ngwe1/upload-labs 3、将下载的压缩包解压到phpstudy文件,phpstudy/www网站的根目录下。 4、本地浏览器访问127.0.0.1/upload-labs/就可以访问靶场了 在镜像仓库搜索upload-labs镜像 将uploa

    2024年02月13日
    浏览(21)
  • Web漏洞-XSS绕过和pikachu靶场4个场景(三)

    ★★实战前置声明★★ 文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。 1.1、XSS漏洞挖掘 数据交互(输入/输出)的地方最容易产生跨站脚本,最重要的是考

    2024年02月05日
    浏览(28)
  • CTF 三大测试靶场搭建:DVWA、SQLi-LABS、upload-labs 靶场部署教程(VM + CentOS 7 + Docker)

    目录 前言 靶场介绍 DVWA SQLi-LABS upload-labs 靶场搭建 CentOS 7 虚拟环境准备 靶场环境部署 系统环境配置 Docker 环境配置 下载 Docker 配置 Docker 镜像源 启动 docker  靶场配置 靶场镜像抓取 创建并运行 docker 容器 靶场的访问  靶场的初始化 DVWA 靶场重置 SQLi-LABS 靶场重置 upload-labs 靶

    2024年01月24日
    浏览(19)
  • 在kali环境下安装Beef-Xss靶场搭建

    目录 一、更新安装包 二、安装beef-xss 三、启动Beef-Xss工具 1、查看hook.js 2、查看后台登录地址 3、查看用户名和登录密码 4、登录页面 5、点击 Hook me:将配置的页面导入BEEF中 ┌──(root㉿kali)-[/home/kali] └─# apt-get update   ┌──(root㉿kali)-[/home/kali] └─# apt-get install beef-xss 第一

    2024年02月10日
    浏览(17)
  • [网络安全]upload-labs 本地靶场搭建详细教程

    本文以phpstudy搭建upload-labs本地靶场环境 PhpStudy是一个PHP调试环境的程序集成包,集成最新的Apache、PHP、MySQL、phpMyAdmin、ZendOptimizer,安装后无须配置即可使用。 官网安装地址: PhpStudy Download 链接 安装完成后打开PhpStudy 网站配置如下: upload-labs 靶机下载地址: https://github.co

    2024年02月08日
    浏览(35)
  • sqli-labs-master靶场搭建详细过程(附下载链接)

    首先进行搭建准备,分别点击下载SQLi-LABS 以及phpstudy,下载网址如下。 将下载好的”sqli-labs-master.zip”进行解压。 将解压缩好的“sqli-labs-master”文件夹移动到“WWW”目录下。 在“WWWsqli-labssql-connections”路径下找到“db-creds.inc”文件。 打开后找到“$dbpass =”,在后面输入数

    2024年02月11日
    浏览(20)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包