目录
3.2 反射型XSS(post)
3.3 存储型XSS
3.4 DOM型xss
3.5 DOM型xss-x
3.6 xss之盲打
3.7 xss之过滤
3.8 xss之htmlspecialchars
3.9 xss之href输出
3.10 xss之js输出
3.1 反射型XSS(get)
进入靶场,如图3.1.1
图3.1.1
根据我们前面的测试流程,我们首先输入一些特殊字符和唯一识别字符,如图3.1.2
图3.1.2
结果如下,如图3.1.3
图3.1.3
输入测试代码查看是否有过滤,查看下源码。如图3.1.4
图3.1.4
测试代码直接在p标签中输出,直接使用<script>alert(/1/)</script>但发现对长度有限制,定位输入框直接修改长度,如图3.1.5
图3.1.5
成功执行,如图3.1.6
图3.1.6
3.2 反射型XSS(post)
进入靶场,如图3.2.1
图3.2.1
先登陆 admin 123456,如图3.2.2
图3.2.2
登入后直接输入payload:<script>alert(/xss/)</script> 触发弹窗,如图3.2.3
图3.2.3
3.3 存储型XSS
进入靶场,如图3.3.1
图3.3.1
输入测试代码,查看是否有过滤,如图3.3.2
图3.3.2
我们发现我们的留言会一直存在,而且从表现上我们输入的内容直接输出了,下面通过源码观察,如图3.3.3
图3.3.3
测试代码直接输出在了p标签中,可以直接输入,如图3.3.4
图3.3.4
3.4 DOM型xss
进入靶场,如图3.4.1
图3.4.1
输入测试代码,如图3.4.2
图3.4.2
显示的内容和我们的输入的有所不同查看页面源码,如图3.4.3
图3.4.3
getElementById获取标签id为text的值给str,str通过字符串拼接到a标签中。所以我们要闭合前面的标签,如图3.4.4
图3.4.4
点击what do you see,便会触发弹窗,如图3.4.5
图3.4.5
3.5 DOM型xss-x
进入靶场,如图3.5.1
图3.5.1
点击请说出你的伤心往事就会弹出一句话,如图3.5.2
图3.5.2
查看下页面源码,如图3.5.3
图3.5.3
domxss函数,使用window.location.search获取url的赋值值给str,经过url解码,取出的内容赋值给txss,将txss中的 “+” 替换为 “空格” 赋值给xss,最后将xss拼接到a标签中。和上面的方法相同,payload需要闭合标签,如图3.5.4
图3.5.4
当鼠标移动到图片位置就会触发弹窗,如图3.5.5
图3.5.5
3.6 xss之盲打
进入靶场,如图3.6.1
图3.6.1
输入常规的payload:<script>alert(/xss/)</script>,点击提交后发现这里提示一段文字,应该是直接打到后台了,如图3.6.2
图3.6.2
找到后台,如图3.6.3
图3.6.3
登录进去,如图3.6.4
图3.6.4
登陆到后台时就会遭受攻击,如图3.6.5
图3.6.5
3.7 xss之过滤
进入靶场,如图3.7.1
图3.7.1
输入下面的内容,如图3.7.2
图3.7.2
查看后端源码,发现对 <script 标签进行了过滤,替换为空格,但是只是对小写进行了替换,如图3.7.3
图3.7.3
可以看到我们输入的<script>标签被去掉了,尝试大小写绕过,<SCRIPT>alert(/xss/)</sCRIpt>,成功弹窗,如图3.7.4
图3.7.4
3.8 xss之htmlspecialchars
进入靶场,如图3.8.1
图3.8.1
输入下面的内容,如图3.8.2
图3.8.2
查看页面源码,如图3.8.3
图3.8.3
可以看到<,>,“都做了转码,唯独”’"(单引号)没有进行转码,可以使用单引号构造payload,如图3.8.4
图3.8.4
3.9 xss之href输出
进入靶场,如图3.9.1
图3.9.1
输入下面的内容,如图3.9.2
图3.9.2
查看页面源码,如图3.9.3
图3.9.3
过滤了 ’,“,<,> 这时候我们可以尝试使用伪协议绕过,如图3.9.4
图3.9.4
3.10 xss之js输出
进入靶场,如图3.10.1
图3.10.1
输入下面的内容,如图3.9.2
图3.10.2
查看页面源码,如图3.9.3
图3.10.3
输入的代码被生成再js中并赋值给$ms。既然我们的输入被带入到js中,可以闭合,如图3.10.4
图3.10.4