xss-labs下载地址:https://github.com/do0dl3/xss-labs
搭建环境是使用的phpstudy搭建
level1
根据源代码显示,可以知道没有任何过滤直接通过name参数传递前端的信息,并且可由客户端控制,所以得出如下测试payload
http://10.0.1.83/xsslab/level1.php?name=<script>alert(/xx/)</script>
level2
测试xss的过程首先输入一个正常的代码,然后根据显示的结果右键查看网页源代码,查看过滤了哪些符合和代码,根据实际情况进行闭合和注释进行测试,具体如下:
输入一个正常的bmfx,没发现啥过滤的问题,然后输入一个常规的xss的payload代码 <script>alert(/bmfx/)</script> 发现如下信息:
测试xss的时候使用Firefox的firebug测试工具很方便,根据上述可以知道表单value原样输出<script>alert(/bmfx/)</script> 但是前面有双引号,小尖括号和后面的双引号 ,所以需要闭合小尖括号,双引号和注释后面的引号即可,最终payload如下:
"> <script>alert(/bmfx/)</script> //
题记
上述level2 经过查看源代码确认是通过函数htmlspecialchars进行过滤的,具体介绍: https://www.w3school.com.cn/php/func_string_htmlspecialchars.asp
网上的一些绕过方式: