目录
一、测试环境
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/level5.php
二、测试目的
实现基于get型的xss攻击,构造payload绕过检测
三、操作过程
1、注入点寻找
注入点依然是在输入框中
输入script标签进行探测 <script>alert(1)</script>
查看源代码发现script标签被替换了,而且标签在value值中,需要闭合
2、使用hackbar进行payload测试
"><scrIpt>alert(1)</script>// 尝试闭合value,script大小写绕过,还是被过滤了
查看源代码,标签被替换了,但是value成功闭合
尝试js事件绕过
"> onfus=javascript:alert(1) // ,发现没绕过成功,onfus函数也被替换了
尝试a标签绕过,href属性也可以提交get请求
"><a href=javascript:alert('xs')>xsss</a>
点击超链接,成功跳转
3、绕过结果
"><a href=javascript:alert('xs')>xsss</a>
四、源代码分析
获取get请求时,使用了strtolower函数,作用是将字符串转化为全小写
对转化后的字符串进行两个替换,替换<script和on
在页面输出的字符串进行了过滤,但是value中的字符串没有进行过滤,这是一个漏洞点
五、结论
进行xss注入get型注入,只要能提交get请求的地方都有可能是注入点,这关的script标签和on类型的事件都会被过滤掉,使用a标签的href也可以提交get请求,这关使用a标签进行绕过。