目录
一、测试环境
1、系统环境
2、使用工具/软件
二、测试目的
三、操作过程
1、注入点寻找
2、使用hackbar进行payload测试
3、绕过结果
四、源代码分析
五、结论
一、测试环境
1、系统环境
渗透机:本机(127.0.0.1)
靶 机:本机(127.0.0.1)
2、使用工具/软件
火狐浏览器的hackbar插件,版本:2.3.1;
测试网址:http://127.0.0.1/xss-labs-master/leve117.php?arg01=a&arg02=b
二、测试目的
实现基于get型的反射型xss攻击,构造payload绕过过滤方法。
三、操作过程
1、注入点寻找
查看页面源代码,发现url中传入的两个参数,arg01和arg02的值使用了=在src参数中。正好js事件就是=运算符,注入点就在这里
2、使用hackbar进行payload测试
根据分析 给arg01赋值 “ onfocus arg02 赋值javascript:alert(1)
?arg01=" onfocus&arg02=javascript:alert(1)
点击插件的地方成功弹窗(火狐浏览器做不了)
3、绕过结果
拼接参数进行绕过,需要使用双引号 “ 闭合前一个标签
?arg01=" onfocus&arg02=javascript:alert(1)
四、源代码分析
查看源代码发现使用=将获取的参数进行拼接,刚好可以构成js事件
但是使用了htmlspecialchars函数将参数的标签转换为实体字符,包括双引号”,因此,输入的双引号是没有作用的
只需要在onfocus前加一个空格,隔开参数即可使事件生效
?arg01= onfocus&arg02=javascript:alert(1)
五、结论
可以利用给定的参数进行构造payload,这关就是特殊情况。
给两个参数分别赋值,使得拼接完成后,形成payload,完成绕过。
这关embed标签的属性省略了引号,方便进行绕过,这是靶机的设计,不然要多绕一个双引号可太难了。
需要绕过htmlspecialchars标签。