反射性xss(get)
输入“ ‘"<>123456 ” 用于测试我们的输入会不会被过滤掉,因为有特殊字符 查看页面源码 输入被输出到了 p 标签中
测试输入的JS代码payload如下
前端对输入长度做了限制,修改一下成为2333333 才能输入完整的payload
成功执行 查看源码,输入的payload嵌入了到了 p 标签里面
反射性xss(post)
用户名密码 admin 123456 进入界面
不能输入标签中
POST的方式提交的,参数内容不会出现在URL中,通过burpsuite
账号admin/123456
登上去以后发现还是没有任何过滤,直接构造payload:
经查询发现是用sha1 解密 得出密码为123456
存储型XSS
存储型XSS和反射型XSS形成的原因是一样的,不同的是存储型XSS下攻击者的可以将脚本注入到后台存储起来,构成更加持久的危害
进行特殊字符的测试
发现没有过滤 下面通过源码观察,也直接输出在 p 标签中,看起来没有经过任何转义和处理 下面输入下面的Payload进行测试测试输入的JS代码payload如下
成功弹窗
DOM型XSS
随意输入字符123
输入的语句全部嵌在a标签内了
创造一个闭合,将a标签闭合掉,并且写入一个语句。
构造payload
成功弹窗
DOM型XSS-X
输入是从浏览器的URL中获取的,和反射型XSS(get)类似
构造payload
构造payload
成功弹窗
XSS盲打
提交后内容不再前端输出 而是输入到了后台。
提交以下内容
登录后台管理界面 http:///pikachu/vul/xss/xssblind/admin_login.php
一进来就发现弹窗
xss 过滤
开发者会做出很多防御措施,但是还是有很多绕过的方式。比如大小写,双写(拼凑)注释干扰,
大小写混合的方式看看能否绕过
成功弹窗,后端只对小写的script进行过滤
将alert(‘xss‘)进行HTML编码 成功弹窗
XSS htmlspecialchars
发现单引号没有经过编码
输入特殊字符进行测试
添加一个单引号用于闭合 href 中的单引号
XSS href输出
输入一个进行测试 提交后查看源码,输入在 a 标签的 href属性中
点击出现弹窗
XSSjs输出
随便输入进行测试
测试输入查看页面源码 插入js 测试代码
构造一个闭合,先用一个单引号和</script>闭合掉页面中的<script> 构建payload
js代码执行 成功弹出弹窗
pikachu xss'
原文地址:https://www.cnblogs.com/p201721210007/p/12034842.html