web基础漏洞-xss绕过

1、大小写绕过

如果服务端是通过确定的大写或小写进行检查,则可以使用大小写混杂等不在过滤范围的表达进行绕过。

2、双写绕过

如果服务端只检查一遍,并将检查的关键字替换为空字符串””,则可以使用双写绕过。

3、引号的错误编码方式

如果是在script标签之外,服务端对’或者”使用\进行转义,则无效。可以进行绕过

4、script标签之间未过滤</>

导致可以</script>关闭当前script标签

5、间隔符使用及绕过

在js代码中,包括事件和script标签之间,间隔符一般是指;字符,可以基于此进行设计。

在html开始标签中,间隔符一般是指空格。一般可以考虑基于此进行另起属性和事件,在属性和事件本身没有引号包围时更佳。

其次,对于;和空格,都可以采用换行符进行代替。效果相同。

对于html属性和事件存在引号包围,还可以使用/字符替代空格。

6、事件中的实体编码

在事件中,使用实体编码可以进行绕过。浏览器先进行实体编码的解码,然后进行事件解析。

7、.字符的绕过

一般来说,xss的利用都会考虑.字符,如果其被过滤。可以考虑[]的方式操作属性,还可以绕过关键字过滤。

window['loca'+'tion']=""

8、base64绕过

如果服务端运行eval函数,但是过滤了其他,可以对敏感字符进行base64编码,然后eval函数执行

9、location绕过

将真正的payload写到location.hash中,然后让xss读取该值后解析,主要用于绕过关键字过滤。

10、脚本中使用/xx/代替引号包围字符串

11、隐式数据转换

基于0和1

(183条消息) JS隐式数据类型转换详解_Silvia250的博客-CSDN博客

posted @ 2023-10-20 20:10  挖洞404  阅读(195)  评论(0编辑  收藏  举报