XSS通关小游戏以及我的挑战思路分享(XSS绕过代码)

level1

这一关是一个很简单的测试,直接在url上改一下标签就行了。

payload如下:

127.0.0.1/XSS/level1.php?name=<script>alert(1)</script>

level2

这一关是一个比较典型的搜索框XSS,只需要构造一下闭合语句,将input语句<input name=keyword value="123">闭合。

这个可以有很多方法,但主要的还是闭合 "> 。

payload如下:

"><script>alert(1)<script>
"><svg/onload=alert(1)>
"><img src=1 onerror="alert(1)"
"><a href="javascript:alert(1)">123</a>

level3

这一关注入<>和',发现都被反射出来了,再看一下源代码,第三关的两个地方都加了htmlspecialchars函数处理,但是htmlspecialchars默认配置是不过滤单引号的。只有设置了:quotestyle,才可以。那么就用单引号来测试

payload如下

'onclick='alert(1)
'onmouseover='alert(1)'

构造闭合语句:<input name=keyword value='".htmlspecialchars('onclick='alert(1))."'>

level4

这一关同上一关很是相似,但查看网页源码时会发现,这里的input是双引号的

<input name=keyword  value="try harder!">

所以输入的语句也需要改一下,payload如下:

"onclick="alert(1)
"onmouseover='alert(1)'

构造闭合语句:<input name=keyword value="'.htmlspecialchars("onclick="alert(1)).'">

level5

这一关根据以上四关经验,在inpunt里面,一般都需要闭合,所以可以确定有">,再尝试一下Xss注入的<script>或是onclick,会发现<script>被过滤了;onclick被加了一个 o_nclick(鼠标事件不可用);<img>这个注入也不行;但是可以考虑一下链接注入,发现还是可以的,即payload如下:

"><a href="javascript:alert(1)">123</a>

构造:
<input name=keyword value=" "><a href="javascript:alert()">123</a>

level6

这一关与上一关还是一样的测试步骤,可以确定闭合为">,但发现<a href>语句也注入不行,其他语句的注入一样没用,此时可以考虑一下,大小写的形式,双写绕过的形式,发现大小写的形式是可以滴。

payload如下:

"><A HREF="javaascript:alert(1)">123</a>

level7

这一关嘛,也是挺简单的,查看网页源码,同上几关可得,是需要闭合语句的,并且闭合类型为">;这时候你会发现不管注入什么语句都会被过滤,尝试单独的大小写,发现还是一样无反应。这时可以考虑一下双写,发现是阔以的。。。

payload如下:

"><scrscriptipt>alert(1)</scrscriptipt>

level8

这一关,若是顺着前几关的思想,看网页源代码想通过闭合方式来注入,在后面的注入语句会发现这是有问题的,不信?

小伙子,可以试一试━┳━ ━┳━。

其实呢,他是过滤的<script>,on,<src>,<href>,‘ ' ’,’ " ‘,大小写,双写。此时你想想还有什么语句可以输入呢?我想,我是没有想到什么了,所以只能从原来的语句改变一下,试想一下,他要过滤你的<script>等,那你是不是可以换一种他所识别,但又过滤不了的注入呢。。。没错啦,就是html的实体编码。。。。

payload如下:

javascri&#x0070;t:alert(1)

level9

这一关,不管小编我如何注入始终都会出现bug,无奈之下,只能去查看一下php源代码,才发现他的过滤和第八关一样,但很明显他的下面友情链接还多加了一个条件:

if(false===strpos($str7,'http://')) { echo '<center><BR><a href="您的链接不合法?有没有!">友情链接</a></center>';

意思是需要在注入语句里要添加上http://这个条件,无奈之下的payload如下:

javascri&#x0070;t:alert(1) /*http://www.baidu.com*/

level10

首先这一关,你会发现这和前九关有着很大的区别,连个注入框都没有,但是兄dei,你四不四忘记了XSS注入本来的注入点就是在URL编码了吗?不管怎么说,还是先看一下网页的源代码吧。。。

首先最瞩目的当然是那三个input框了:

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

怎么会有三个input,三个参数,难道三个都要传参?你猜猜到底哪个才是真的呢ε=ε=ε=(~ ̄▽ ̄)~,当然我也是猜的,在url中注入一下,吧三个参数都写上:

http://127.0.0.1/XSS/level10.php?t_link=1&t_history=2&t_sort=3

写完之后,发现页面没变化,肿么办(+_+)?,难道是小编错了吗,当然不是呢,此时我们需要看看当前网页上隐含的回应:

F12--->查看器--->body---->第一个center部分----->id

打开之后你会看到只有t_sort有回应,所以就从这里入手,poyload如下:

http://127.0.0.1/XSS/level10.php?t_sort="onclick="alert(1)"type="text"

level11

这一关发现还是和上一关一样的模式,这是心里乐呵乐呵了吧,看来和上关一样,注入一下,发现悲剧了。。。

查看网页源码的时候,发现多了一个传参t_ref,还对其有了赋值操作。什么鬼(这是什么操作)????

这时,根据小编做sql注入靶场的经验,应该是要抓包改referer值了。。。。

payload如下:

http://127.0.0.1/XSS/level12.php?t_sort="onclick="alert(1)" type="text"

还是要先写一下再抓包的。。。。

level12

这关步骤和上一关没什么区别,只是将t_ref改为t_ua,,,,,,

这不就是改一下包的user-Agent吗。。。

payload如下:

http://127.0.0.1/XSS/level12.php?t_sort="onclick="alert(1)" type="text"

 level13

这一关,我想又是一个很熟悉的页面吧,这里的是改cookie值,综上所述,长话短说,直接上payload:

http://127.0.0.1/XSS/level13.php?t_sort="onclick="alert(1)" type="text"

level14和level15

这关啊,小编看其他人写的博客,至今也是没看懂(先让我凌乱一会)

各位大佬,你们谁要是看懂了,可以回来@我一下。。。。。。。

level16

这关按照以往的经验输入,发现它把script 、/ 、空格 都转译了,跟前面有一题一样,可以考虑编码和不用script
keyword=test,显示在页面中。
使用<a%0dhref="javascript:onclick=alert()">点我就xss</a>
提示说不允许使用。。。
换一个

payload如下:

127.0.0.1/XSS/level16.php?keyword=<img%0dsrc=1%0donerror=alert()>

level17

这一关将arg01和arg02的参数分别写入src的值中,并过滤了尖括号,导致不能闭合标签。因为本身是在embed标签中,故考虑,能不能在 arg02中,写入事件来触发XSS。答案是可以的,这里采用onmousedown标签,构造arg02参数的值为 onmousedown=alert(1),也可以采取onclick=alert(1),点击页面嵌入的swf可触发XSS。

不说了,直接上payload如下:

http://127.0.0.1/XSS/level17.php?arg01=a&arg02=%20onclick=alert(1)
http://127.0.0.1/XSS/level17.php?arg01=a&arg02=%20onmousedown=alert(2)

level18

这一关和上一关很类似,但是需要有一点点的转变,经过尝试发现,在arg02参数无论加什么字符都无法构造空格,那转移注意力,尝试arg01,果然,arg01是可以构造的,参考上一关的payload,

http://127.0.0.1/XSS/level17.php?arg01=%20onclick=alert(1)&arg02=b
http://127.0.0.1/XSS/level17.php?arg01=%20onmousedown=alert(2)&arg02=b

level19和level20

这两关,小编实在是做不出呀ε=ε=ε=(~ ̄▽ ̄)~

好了,综上。。。。结束。。。。

猜你喜欢

转载自blog.csdn.net/qq_42133828/article/details/83039939