xss games20关小游戏附源代码

时间:2022-08-03 18:40:32

1.

xss games20关小游戏附源代码

get方式的的值直接输出来了。

?name=<script>alert(1)</script>

2.

xss games20关小游戏附源代码

同样没有过滤,不过需要闭合前边的双引号和>。
"><script>alert(1)</script>

3.

xss games20关小游戏附源代码

xss games20关小游戏附源代码

用htmlspecialchar函数对输入的值做了一个过滤。这个函数过滤 < > " & '但是他这个也存在过滤方法

w3c上的。很明显,他这里没有加ENT_QUOTES,是默认的形式,所以不过滤单引号。另外绕过<>的过滤,就用onXX事件,这里我用onclick。
' onclick=alert(1)//

4.

xss games20关小游戏附源代码

只是过滤了<>,比上一关还简单 。

" onclick=alert(1)//

5.

xss games20关小游戏附源代码

<script过滤为<scr_ipt,on过滤为o_n,我们可以考虑javascript伪协议。过滤的是<script,script是不会被过滤的。

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

6.

xss games20关小游戏附源代码

过滤了<script,on,src,data,href。看起来是没有办法,但是他这里忘了对get方式得到的keyword的值进行小写的函数,所以,大小写绕过。

" oNclick=alert(1)//

7.

xss games20关小游戏附源代码

仔细观察过滤的函数,与前边过滤不用的是,他是把敏感的字符替换为空,而且是替换一次。 双写绕过。
"><a hrhrefef=javascrscriptipt:alert(1)>111</a>
注意观察href和script哦。

8.

xss games20关小游戏附源代码

href都给你写好了。直接javascript,但是要注意script这里过滤了,但是javascript可以进行html编码,注意不能是url编码哟,这样url解析器会识别不出来什么协议。还有就是对script之间的一个或多个单词编码。

javascript:alert(1)

9.

xss games20关小游戏附源代码

和上一关基本一样,可是你输入中必须有http://,直接把这个http://写这是后边。这样,http://不但出现在了你输入的字符串里,而且被注释掉了不起任何作用

javascript:alert(1)//http://

10.

xss games20关小游戏附源代码

他这里有两个get可以得到的参数的值,keyword可以得到,但是代码中并没有有关keyword得到的值的输出。看代码,还可以用t_sort得到值,我们可以构造script的方式来让他产生弹框。构造:"><script>alert(1)<script><" (注意前后的闭合) 。但是这里过滤掉了<>,所有考虑onclick事件,值得注意的是:input的type属性不是text,而是hidden,这意味我们不能通过点击输入框来让他弹框。所以我们还有加一条type="text",然后注释掉type=hiden。

t_sort=" onclick=alert(1) type=text//

11.

xss games20关小游戏附源代码

和上一题一个思路,只不过注入点到了http_reference,抓包,修改Referer的值

Referer: " onclick=alert(1) type=text//

12.

xss games20关小游戏附源代码

抓包修改user-angent的值

User-Agent:" onclick=alert(1) type=text//

13.

抓包修改cookie的值,user=不要删除了哟

xss games20关小游戏附源代码

Cookie: user=" onclick=alert(1) type=text//

14.

没看懂。。。

15.

也不会

16.

xss games20关小游戏附源代码

过滤了空格,script,/。我们可以想到用回车或者换行的html编码来绕过。%0a,%0d。
这里讲一下为什么要过滤/,因为他不想让你用必须闭合的标签。比如<a href></a>,这里过滤/这种就不能用了。但是我根据写html的经验,<a>位于<center></center>中,就算没有</a>他也能够创造链接(这里不影响到其他的内容),并且成功执行。这里,我就偏用<a href>.
然后我对javascript的某个字符编码,从而绕过script的过滤。对R编码。->r->%26%23x72%3B
为什么要进行编码?&#都比较特殊,一开始浏览器不会对他进行编码,而#有截断的功能,所以浏览器压根收不到后边的内容,但实现进行url编码,浏览器要先显示这些字符的时候url解码,就完美地还原出&#这符号了,你看第八关为什么可以直接&#x72;我也不是很清楚,做了个小实验:
xss games20关小游戏附源代码

输入&#72;get方式那里会自动给他编码,可能提交的方式,或者其他的形式不同吧。
?keyword=<a%0Ahref=javasc%26%23%78%37%32%3Bipt:alert(1)>a

下载链接:https://files.cnblogs.com/files/Eleven-Liu/xss练习小游戏.zip