XSS Challenges靶场练习(1-12关) – 作者:minaaaca

Stage #1

1612917598_60232b5e1104cd1fcfd7e.png!small?1612917598935

根据提示可知,该靶场需要通过反弹domain获得flag

因为只有一个搜索框,通过输入数字1发现可以直接显示返回结果

1612918432_60232ea0ddac5be5e7efb.png!small?1612918433804

然后用f12选中返回内容,发现此处用到了b标签(用于加粗字体)

1612918499_60232ee312e1ddfd179de.png!small?1612918500057

法1:可以直接注入语句反弹flag

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

1612918632_60232f682d61855dca402.png!small?1612918633081

1612918641_60232f71d0ac0b01f4eb8.png!small?1612918642916

此时可以通过b标签发现语句已经变灰,说明已被浏览器成功执行

法2:可以通过闭合b标签进行注入

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

1612918939_6023309be356ed7f4bde7.png!small?1612918940885

1612918971_602330bb3c281b6093b1e.png!small?1612918972128

此时可以发现b标签已经被闭合,并且没有原来多余的那个</b>,因为浏览器已经自动把最后的b标签去掉,导致提交的内容和页面代码混合,浏览器会认为我们提交的js语句是页面代码中的

Stage #2

同样的,在搜索框中直接输入一个1查看返回结果,但是发现搜索信息提交以后依然在搜索框中,通过f12发现此时输入信息只会被当做一个纯文本文档的值(value)存在,并不会被执行

1612919181_6023318d0f3e1743aea2b.png!small?1612919182036

1612919267_602331e3e7d60e8d0f9d1.png!small?1612919268851

法1:可以通过闭合value标签进行注入

1″><script>alert(document.domain);</script>

1612919401_60233269ca7bcfc42b6d1.png!small?1612919402723

1612919406_6023326e3fae0ca025206.png!small?1612919407204

并且可以发现此时value中的值仍然会在输入框中保留

1612919456_602332a0eb81b5ddfaa35.png!small?1612919457951

法2:可以通过事件触发

“onmouseover=alert(document.domain);”(鼠标移动到输入框就会自动运行)

“onclick=alert(document.domain);”(鼠标点击输入框后运行)

Stage #3

在输入框中直接输入语句发现未被执行

1612920241_602335b19a964c689821d.png!small?1612920242553

通过f12发现此时语句仍然加粗显示没有变灰,可知此时语句应该是被转义了

1612920687_6023376fd636be778f049.png!small?1612920688863

所以需要寻找新的注入点,并且可以发现此时后面还有个b标签,是作为菜单栏选择的部分,所以可以尝试在此处注入,通过bp抓包进行修改参数

1612920965_60233885364cc043ddb18.png!small?1612920966173

修改p2的值为

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

1612920965_6023388539238498b03cc.png!small?1612920966174

转发后成功弹出flag

1612921008_602338b05b1c177986e3a.png!small?1612921009217

可以发现此时第二个b标签中的语句已经变灰被成功执行

1612921083_602338fbb7d5ef9ad90ff.png!small?1612921084702

Stage #4

在输入框输入语句发现与第三关相似,输入的语句被转义

1612921317_602339e54bf5854b83f4e.png!small?1612921318185

1612921341_602339fd718021d3ecacd.png!small?1612921342380

通过抓包发现了p1,p2,p3三个标签,并且在p2处注入语句的时候发现也被转义了

1612921485_60233a8d699cdd702a21f.png!small?1612921486573

1612921485_60233a8d6aeb9d12a57bf.png!small?1612921486574

1612921517_60233aad9da4c1f6607c1.png!small?1612921518598

所以只能尝试在p3标签进行注入

1612921729_60233b819fc8745a97188.png!small?1612921730516

发现仍然不能弹窗,然后通过f12发现还有一个value标签,需要先闭合掉

1612921856_60233c0033f7b4d5bd609.png!small?1612921857106

1612921973_60233c755b3232c0de907.png!small?1612921974357

转发后成功弹出flag

1612921994_60233c8a7288a50d18356.png!small?1612921995337

ps:p3标签(隐藏域,限制作用),在页面看不见,可以通过源码分析和抓包发现

Stage #5

1612922150_60233d2697988c73f74e0.png!small?1612922151443

通过f12可以发现限制了输入长度并且为value标签

1612922190_60233d4e87c8a2696eb44.png!small?1612922191455

所以需要修改长度并闭合value

1612922219_60233d6b70bc32f01d457.png!small?1612922220441

1″><script>alert(document.domain);</script>

1612922343_60233de7ece91c4343ce0.png!small?1612922344774

1612922353_60233df10a9620ced1dba.png!small?1612922353939

Stage #6

输入一个1发现是value标签

1612922546_60233eb223285f99da359.png!small?1612922547062

1612922558_60233ebe11761ba89f78d.png!small?1612922558867

闭合value发现<>被替换掉了

1612922598_60233ee623cc0d507ff27.png!small?1612922599019

1612922609_60233ef107fdb8ea890ec.png!small?1612922609996

所以就不用script标签了,改用事件触发

“onmouseover=alert(document.domain);”

或 “onclick=alert(document.domain);”

1612923062_602340b6b265c759ab164.png!small?1612923063644

1612923076_602340c479a2c97487468.png!small?1612923077475

Stage #7

输入一个1发现是value标签,与第六关相似,也过滤了<>

1612924529_60234671ee6d5a1374679.png!small?1612924530847

1612924541_6023467df2a22e3a5e31d.png!small?1612924542889

使用事件触发发现引号被限制了

1612924595_602346b3961b5c832344e.png!small?1612924596556

1612924609_602346c134468296c43f3.png!small?1612924610226

可以使用空格进行绕过

1 onclick=alert(document.domain);(空格前需要加入东西)

1612926947_60234fe3db96bb910c7c7.png!small?1612926948805

1612926958_60234feebb35fe26b23ec.png!small?1612926959629

Stage #8

输入1发现输入内容被当做了url

1612927242_6023510a6a38fdf68dc7b.png!small?1612927243423

f12可以看见此处用了a标签(超链接)

1612927283_6023513390f4008c4900c.png!small?1612927284519

我们需要通过点击超链接弹窗,直接将script语句输入其中试试

1612927378_602351926ce921a02587b.png!small?1612927379345

1612927388_6023519cd6721ef6b3e95.png!small?1612927389770

1612927401_602351a90ac50cdb0ff3b.png!small?1612927401855

失败

此处需要用到JavaScript伪协议(当用户点击链接时可以调用JavaScript代码,触发XSS攻击)

javascript:alert(document.domain)

1612927569_602352514f4f4366ae71e.png!small?1612927570133

1612927578_6023525ac0ced321ca34f.png!small?1612927579651

点击URL后成功弹窗

1612927598_6023526e50121bb87e9c2.png!small?1612927599329

Stage #9

这道题用到了UTF-7编码注入,由于很少见就略过了

Stage #10

输入1发现又是value标签

1612927920_602353b016b0472b059d1.png!small?1612927920967

所以直接闭合标签绕过

发现语句1″><script>alert(document.domain);</script>已被执行,但是却没弹窗

1612927983_602353ef7697b017c6958.png!small?1612927984327

f12查看,发现domain被过滤了

1612928056_60235438d69f01e2ac2a2.png!small?1612928057757

法1:双写绕过将domain改为domadamainain

1612928137_602354896739db7d5be11.png!small?1612928138296

成功弹窗

1612928154_6023549a4ddaa0f30f01d.png!small?1612928155179

法2:base64加密绕过

首先在bp的decoder模块中进行编码

1612928208_602354d08053d32e294a1.png!small?1612928209440

然后还需要解码

atob可将base64加密以后的字符串还原为原文,再通过eval执行

1″><script>eval(atob(‘YWxlcnQoZG9jdW1lbnQuZG9tYWluKQ==’))</script>

1612928299_6023552b04bcb448a334d.png!small?1612928299861

1612928309_602355355eaec21d2f8be.png!small?1612928310337

Stage #12

11关不知道为啥进不去,直接进行12关

1612928343_602355576757cc4cd0f0b.png!small?1612928344243

输入1发现value标签

1612928602_6023565a492709848e3f3.png!small?1612928603154

然后输入语句

1″><script>alert(document.domain);</script>

1612928673_602356a101585e176b873.png!small?1612928673895

执行以后发现被过滤掉了很多字符

1612928646_602356865ebb26b4a9da0.png!small?1612928647246

根据提示可知以下符号都被过滤掉了

1612928714_602356ca6f8a4596bcc39.png!small?1612928715444

可以利用IE浏览器特性进行绕过(两个反引号“可以识别为双引号)

在IE浏览器下执行

1612928786_60235712bc5a615367b83.png!small?1612928787652

成功弹窗

1612928796_6023571c3d0d02ce6d315.png!small?1612928797133

来源:freebuf.com 2021-02-10 11:51:26 by: minaaaca

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论