目录
一、测试环境
1、系统环境
渗透机:本机(127.0.0.1)
靶 机:本机(127.0.0.1)
2、使用工具/软件
火狐浏览器的hackbar插件,版本:2.3.1;
Kali:ffuf(爆破参数)
测试网址:http://127.0.0.1/xss-labs-master/leve115.php
二、测试目的
实现基于get型的反射型xss攻击,结合nginclude文件包含漏洞,构造payload绕过检测。
三、操作过程
1、注入点寻找
这关没什么头绪,f12查看源码,发现有个注释,给了nginclude的值 是undefined
搜索发现,nginclude指令包含文件的话,需要加引号 ‘’ ,绑定变量则不需要
尝试爆破文件包含的参数
先试一下,发现正常回显的size是449,这样就可以停止了
下次爆破时过滤掉size=449的包,这样就能回显出文件包含成功的size不等于449的包了
ffuf -w /usr/share/seclists/Discovery/Web-Content/directory-list-1.0.txt -u http://192.168.0.100/xss-labs-master/level15.php?FUZZ='level1.php' -fs 0
真正的爆破命令
ffuf -w /usr/share/seclists/Discovery/Web-Content/directory-list-1.0.txt -u http://192.168.0.100/xss-labs-master/level15.php?FUZZ='level1.php' -fs 449
这里很快就爆破出了src这个参数
注入点就在这个文件包含的漏洞上了
2、使用hackbar进行payload测试
?src='level1.php'
尝试src参数,是正确的,成功包含到了第一关,接下来只需要在包含进来的页面进行注入即可了
尝试注入script标签,发现不成功
分析原因:ng-include,加载外部html,script标签中的内容不执行,不能加载
可以加载html标签,style样式
添加a链接,使用链接进行get请求触发js
成功加上链接
?src='level1.php?name=<a href="javascript:alert(/xss/)">xss</a>'
点击链接,成功弹窗
3、绕过结果
进行nginclude包含,然后注入,会简单很多
不过这关需要在html标签中注入,如a标签和img标签,script标签无法解析
?src='level1.php?name=<a href="javascript:alert()">xss</a>'
四、源代码分析
这关使用了ng-include方法,可以进行包含,参数为src参数,对包含的变量进行了过滤
但是,可以包含到其他网页,就可以利用其他网页的漏洞进行注入了
五、结论
对于文件包含一定慎用,如果使用,就一定确保可包含的网页不会有漏洞可以利用,来打组合拳。
为什么script标签解析不了呢?a标签就可以。
标签:xss,测试报告,包含,src,标签,labs,level1,php From: https://blog.csdn.net/2301_79698171/article/details/143196928