XSS-Labs大闯关第一弹

XSS-Labs大闯关第一弹

level 0

靶场搭建

下载至phpstudy中的WWW目录。

下载地址:

git clone https://github.com/do0dl3/xss-labs.git

打开phpstudy,启动MySQLApache服务。创建网站,根目录选择下载的文件。之后打开网站即可。

1

level 1

没有任何过滤

在源码中找到我们传入的参数,发现插入到了元素<h2>中。直接给我们的name参数赋值一个简单的弹窗脚本,执行成功。这一关没有任何过滤,非常基础的反射型XSS。

2

level 2

htmlspecialchars()

插入点在元素的属性

按照第一题的思路,直接传参<script>alert(/xss/)</script>,发现没有跳出弹窗。查看源代码发现我们的传递的参数被HTML实体编码了。

继续检查源代码,发现我们提交的参数赋值给了<input>元素的value,所以这里我们可以通过提前闭合,利用on事件执行一个简单的弹窗。

3

传递参数1" onmouseover="alert(/xss/),查看源码发现拼接成功。鼠标移动到该元素上跳出弹窗。

4

level 3

类似level 2

与level 2有些许不同,构造参数1' onmouseover='alert(/xss/),查看源码发现拼接成功。同level 2跳出弹窗。

5

level 4

无意思

和level 2构造同样的参数即可

6

level 5

on事件被过滤,拼接创建新元素,利用JavaScript伪协议

继续使用上一关的参数,发现被过滤了on事件。

7

这个元素没办法拼接代码的话,那么通过构造参数新建一个元素来执行代码。构造参数1"><a href="javascript:alert(/xss/)">click!</a><img src=",这里没有过滤掉javascript,查看源代码发现拼接成功,点击click!即可跳出弹窗。

8

level 6

大小写绕过

传入1" onmouseover="alert(/xss/),发现on被过滤了。

9

继续尝试1"><a href="javascript:alert(/xss/)">click!</a><img src=",发现href也被过滤了。

10

尝试大写绕过1"><a HREF="javascript:alert(/xss/)">click!</a><img src=",发现代码拼接成功.点击click!>即可跳出弹窗。

11

level 7

双写关键字

尝试参数1" onmouseover="alert(/xss/)on又双叒叕被过滤了。

12

尝试创建新元素1"><a href="javascript:alert(/xss/)">click!</a><img src=",也不行。

13

尝试双写关键字,拼接成功,跳出弹窗。

14

level 8

javascript伪协议+HTML实体编码绕过

随便上传一个链接。

15

尝试下javascript伪协议。拼接的时候发现被插入了一个空格。尝试大写绕过,也不行。

16

试试HTML实体编码绕过。

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#47;&#120;&#115;&#115;&#47;&#41;

拼接成功,点击弹出窗口。

17

level 9

类似level 8

随便传入一串字符,发现不符合格式,需要http://才能成功传入。构造参数javascript:alert(/xss/)//http://,发现和level 8一样在script中间插入了一个空格,直接尝试HTML实体编码绕过,拼接成功,点击后弹出窗口。

18

level 10

隐藏表单

检查源代码,发现有隐藏的输入框。同时给这些变量传值。

<form id="search">
    <input name="t_link" value="" type="hidden">
    <input name="t_history" value="" type="hidden">
    <input name="t_sort" value="" type="hidden">
</form>
http://xss-labs/level10.php?keyword=well done!&t_link=a&t_history=b&t_sort=c

只有t_sort变量被赋值了。尝试传参重构这个元素。参数为1" type="" onmouseover="alert(/xss/)

19

拼接成功,跳出弹窗。

20

------本页内容已结束,喜欢请分享------

文章作者
能不能吃完饭再说
隐私政策
PrivacyPolicy
用户协议
UseGenerator
许可协议
NC-SA 4.0


© 版权声明
THE END
喜欢就支持一下吧
点赞17赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片