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根目录下

web靶场——xss-labs靶机平台的搭建和代码审计_第1张图片

2、配置网站

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

注意:

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

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

  • 最好使用5.xx本版

web靶场——xss-labs靶机平台的搭建和代码审计_第2张图片

3、启动MYSQL和Nginx

web靶场——xss-labs靶机平台的搭建和代码审计_第3张图片

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

web靶场——xss-labs靶机平台的搭建和代码审计_第4张图片

二、xss-labs靶场通关攻略

第一关:

web靶场——xss-labs靶机平台的搭建和代码审计_第5张图片

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

web靶场——xss-labs靶机平台的搭建和代码审计_第6张图片

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

web靶场——xss-labs靶机平台的搭建和代码审计_第7张图片

通关成功!!!

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

第二关:

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

​​​​​​​

1、尝试插入代码

我们尝试注入:

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

web靶场——xss-labs靶机平台的搭建和代码审计_第8张图片


 

2、查看网页源码

​​​​​​

web靶场——xss-labs靶机平台的搭建和代码审计_第9张图片

3、查看源代码

htmlspecialchars函数对<>实体化转义

web靶场——xss-labs靶机平台的搭建和代码审计_第10张图片

4、绕过思路

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

web靶场——xss-labs靶机平台的搭建和代码审计_第11张图片

方法一:input标签

">

web靶场——xss-labs靶机平台的搭建和代码审计_第12张图片

方法二:使用onclick点击事件

aa"οnclick="alert(1)

点击搜索框:

web靶场——xss-labs靶机平台的搭建和代码审计_第13张图片

通关成功!!!

本关小结:闭合绕过

第三关:

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

web靶场——xss-labs靶机平台的搭建和代码审计_第14张图片

1、尝试插入代码

"

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

web靶场——xss-labs靶机平台的搭建和代码审计_第17张图片

方法一:onmouseover事件

onmouseover事件的效果是当我们的鼠标碰到input标签的位置,也就是搜索框时,会执行onmouseover事件。最常与 标签的值都做了隐藏处理,最后一个t_ref的标签是http头referer的参数

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

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

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

web靶场——xss-labs靶机平台的搭建和代码审计_第73张图片

在尝试t_ref下传参

web靶场——xss-labs靶机平台的搭建和代码审计_第74张图片

可见传参成功

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

方法一:

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

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

web靶场——xss-labs靶机平台的搭建和代码审计_第75张图片

过关成功!!!

方法二:

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

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

web靶场——xss-labs靶机平台的搭建和代码审计_第76张图片

过关成功!!!

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

第十二关:

1、输入代码进行测试:

web靶场——xss-labs靶机平台的搭建和代码审计_第77张图片

2、查看网页源码

又出现四个隐藏

web靶场——xss-labs靶机平台的搭建和代码审计_第78张图片

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

可见我们的猜想是正确的

web靶场——xss-labs靶机平台的搭建和代码审计_第79张图片

3、查看源码

可以看到:

  • 将所有字母转换成小写

  • 过滤tsort

  • 过滤HTTP_USER_AGENT

  • 过滤>转义成空

  • 过滤<转义成空

  • 同时还有四个隐藏表单

web靶场——xss-labs靶机平台的搭建和代码审计_第80张图片

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

方法一:

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

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

web靶场——xss-labs靶机平台的搭建和代码审计_第81张图片

过关成功!!!

方法二:

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

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

web靶场——xss-labs靶机平台的搭建和代码审计_第82张图片

过关成功!!!

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

第十三关:

1、输入代码进行测试:

web靶场——xss-labs靶机平台的搭建和代码审计_第83张图片

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

2、查看网页源码

web靶场——xss-labs靶机平台的搭建和代码审计_第84张图片

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

使用Hackbar进行测试

web靶场——xss-labs靶机平台的搭建和代码审计_第85张图片

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

照例再查看一下源码

3、查看源码

可以看到:

  • 将所有字母转换成小写

  • 过滤tsort

  • 过滤>转义成空

  • 过滤<转义成空

  • 同时还有四个隐藏表单

web靶场——xss-labs靶机平台的搭建和代码审计_第86张图片

4、绕过思路

参考10,11,12,13关

方法一:

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

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

web靶场——xss-labs靶机平台的搭建和代码审计_第87张图片

过关成功!!!

方法二:

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

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

web靶场——xss-labs靶机平台的搭建和代码审计_第88张图片

过关成功!!!

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

第十四关:

1、输入代码进行测试:

web靶场——xss-labs靶机平台的搭建和代码审计_第89张图片

2、查看网页源码

3、查看源码

web靶场——xss-labs靶机平台的搭建和代码审计_第90张图片

4、绕过思路

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

说一下思路吧

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

第十五关:

1、输入代码进行测试

web靶场——xss-labs靶机平台的搭建和代码审计_第91张图片

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

2、查看网页源码

web靶场——xss-labs靶机平台的搭建和代码审计_第92张图片

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

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

3、查看源码

web靶场——xss-labs靶机平台的搭建和代码审计_第93张图片

4、绕过思路

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

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

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

 web靶场——xss-labs靶机平台的搭建和代码审计_第94张图片

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

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

src= ' " <>%20 AAaa OnCliCK 
                    
                    

你可能感兴趣的:(网络渗透防御,xss,网络安全,渗透攻击’,XSS注入)