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

2024-06-04 9135阅读

目录

一、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、查看源码

:外部内容嵌入元素

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标签,将导致

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

    通关成功!!!

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

    第六关:

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

    1、输入代码进行测试:

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

    2、查看网页源码

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

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

    3、查看源码

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

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

    4、绕过思路

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

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

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

    构造代码:

    ">alert(1)

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

    通关成功!!!

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

    第七关:

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

    1、输入代码进行测试:

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

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

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

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

    3、查看源码

    • 将所有字母转小写

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

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

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

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

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

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

        ">alert(1)

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

        通关成功!!!

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

        第八关:

        1、输入代码进行测试:

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

        2、查看网页源码

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

        可见在href下输出

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

        尝试使用javascript注入:

        javascript:alert(1)

        发现javascript被过滤了

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

        尝试大小写绕过:

        发现大小写也被过滤:

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

        3、查看源码:

        • 将所有字母转换成小写

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

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

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

              4、绕过思路

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

              javascript:alert(1)
              javascript%3Aalert%281%29

              绕过失败,无法解析

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

              方法一:

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

              原理:

              编码顺序:urlcode html unicode javascript

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

              javascript:alert(1)

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

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

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

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

              通关成功!!!

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

              第九关:

              1、输入代码进行测试

              aaaa

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

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

              2、查看网页源码

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

              可见javascript被过滤了

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

              3、查看源码

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

              • 将所有字母转换成小写

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

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

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

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

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

                    4、绕过思路

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

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

                    方法一:

                    Javascript:Alert(1);//http://

                    没有报错

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

                    绕过成功!!!

                    方法二:

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

                     javascript:alert('http://'

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

                    绕过成功!!!

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

                    第十关:

                    1、输入代码进行测试

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

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

                    2、查看网页源码

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

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

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

                    3、查看源码

                    可以看到:

                    • 将所有字母转换成小写

                    • 过滤tsort

                    • 过滤>转义成空

                    • 过滤转义成空

                    • 过滤转义成空

                    • 过滤


    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]