xss漏洞形成的原因其实也是对来自用户输入数据未进行过滤,或者是过滤不彻底,使得用户可以注入js脚本,危害的对象是前端用户。
反射性xss(get)
输入一部分内容后发现输入的长度有限制,可以更改长度或者直接在burp上输入都可以。
![](https://img-blog.csdnimg.cn/img_convert/eeaaa51c2fec7fd4916159d24f89ceda.png)
然后输入payload,发现触发了css
![](https://img-blog.csdnimg.cn/img_convert/c6288c5fdf07001242bf8dca643c47f8.png)
![](https://img-blog.csdnimg.cn/img_convert/1d62bae887952db7e85296fc6dd10b79.png)
反射性xss(post)
操作与反射性xss(get)类似。
存储型xss
直接输入payload触发弹窗,js脚本被保存在了数据库中,只要打开存储型xss这个留言界面就会有xss弹出。
DOM型xss
随便输入后找到输入的文本显示在html的位置,查看代码。
![](https://img-blog.csdnimg.cn/img_convert/032e1c4cce1a8579a5279989dbbd859a.png)
想办法输入payload并闭合标签,xss弹出。
'><img src="1" οnerrοr="alert('xss')">
![](https://img-blog.csdnimg.cn/img_convert/eaf1ae7957b4939cbcd1ed95cfc2c31e.png)
DOM型xss-x
'><img src='1' οnerrοr="alert('xss')">
![](https://img-blog.csdnimg.cn/img_convert/4af9958865c38e15fdc6d727c81a187c.png)
xss之过滤
输入script的标签发现被过滤掉
![](https://img-blog.csdnimg.cn/img_convert/de3b7e88ca93869c4929985c20a09237.png)
尝试大小写绕过。
![](https://img-blog.csdnimg.cn/img_convert/5cccdbedbcc95aa73f7d49dbd245504f.png)
成功绕过。
或者也可以尝试使用其他标签绕过。
#'<img src='#' οnerrοr='alert(1)'>
xss之htmlspecialchars
发现有两个位置返回用户的输入
![](https://img-blog.csdnimg.cn/img_convert/451cda08c8fe3425b90c67ccaeb605b2.png)
我们先尝试第二个,发现该处被编码。
![](https://img-blog.csdnimg.cn/img_convert/fbfb24e988a1facdc7f4be7142f19db6.png)
那我们只能在第一个位置属性处尝试闭合标签。
![](https://img-blog.csdnimg.cn/img_convert/4f546544cca8c6ce6702f25d7704cf32.png)
点击链接即可弹出xss框。
xss之href输出
![](https://img-blog.csdnimg.cn/img_convert/f4bc1f61008c83e7efb97c197e2bb3e5.png)
javascript:alert(1)
xss之js输出
![](https://img-blog.csdnimg.cn/img_convert/b173b27cde63ab6120fe1c8f702116ab.png)
尝试闭合符号。
#';alert(1);var c='j
成功执行,
![](https://img-blog.csdnimg.cn/img_convert/2946b4bd8f059b949fcce5011b9f1838.png)