XSS的绕过姿势(四)

本章重点挑xss-labs-master靶场里一些经典的例子探讨

level2 闭合文本框

image-20230416163152800

查看网页源码:

1
2
3
4
5
<h2 align=center>没有找到和&lt;script&gt;alert(1)&lt;/script&gt;相关的结果.</h2>
<form action=level2.php method=GET>
<input name=keyword value="<script>alert(1)</script>">
<input type=submit name=submit value="搜索"/>
</form>

看的出来 回显的消息被转义了,但是搜索框里的内容还在,看来搜索框是有value属性的

换思路 提前闭合value属性

image-20230416164148387

image-20230416164202952

成功


level5 闭合文本框

这一关把on开头的字符串全部替换成了 on_ 开头,script标签也替换成了scr_ipt标签

image-20230416164916848

尝试大小写绕过

失败

on开头的事件没办法触发了 所以img标签此路不通

换标签:

换a标签,a标签里有href属性,在此嵌入脚本

image-20230416165821724

出现了可以点击的标签,成功

image-20230416165907920


level7 使用嵌套应对删除字符串的过滤

测试:

image-20230418113233600

发现script 和 href被直接删除了

image-20230418113429060

如图 当“href”和“script”标签被过滤删除时,可以使用嵌套的方法绕过。

如:

  • hhrefref
  • sscriptcript

image-20230418112906538

image-20230418113948585

成功


level 8 利用Unicode编码绕过

image-20230420163308647

这一关是利用页面特性:在文本框输入url,点击添加友情连接,给下面的超链接href属性赋值

这一关将常规的xss有关字符都过滤掉了。

此时可以使用unicode编码进行绕过

image-20230420163537287

image-20230420163557363

成功。

level9 添加特定字符串应付检测

image-20230420165217760

这一关会对输入的URL进行检测,若无 ”http://“ 字符串则报错

可以在编码后的URL后面添加上注释掉的对应字符串进行绕过

1
&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#48;&#41;/* http:// */

level10 对带有隐藏属性的标签要有敏锐的嗅觉

image-20230420170220631

注意到这关的源码有三个被隐藏的input标签:

image-20230420170340882

此时猜测三个标签其中有一个可能使用get方法传值

此时对input标签一个个测试,尝试使用url改动其属性值,最终发现t_sort属性被修改

输入payload(因为标签被隐藏,所以需要加上type=“text” 来覆盖后面的隐藏属性):

1
?t_sort=" onfocus=javascript:alert() type="text

image-20230420171848379


以上是前十题中的几个典型绕过方式,后十题涉及到一些辅助工具的使用,将在后面补充。