2026-10-20 08:50:59
OpenRASP XSS算法的几种绕过方法
OpenRASP是一款开源的Web应用安全防护系统,它能够对各种Web安全漏洞进行实时检测和防御,包括XSS(跨站脚本攻击)。然而,就像任何安全防护系统一样,OpenRASP也存在可能被绕过的情况。以下是针对OpenRASP XSS算法的一些常见绕过方法:
1. 标签正则绕过OpenRASP的XSS算法使用标签正则来匹配潜在的恶意输入。然而,通过构造特定的payload,可以绕过这些正则匹配。
使用非标准标签名:
示例payload:<d3v/onmouseleave=[1].some(confirm)>click
这些payload利用了非标准的HTML标签名,这些标签名不在OpenRASP的标签正则匹配范围内,因此可以绕过检测。
对payload进行URL编码:
将上述payload进行URL编码后,通过Burp Suite等工具发送请求,可以成功绕过OpenRASP的检测。
在某些情况下,通过在标签后接单引号或双引号,也可以绕过OpenRASP的检测。
<a"/onclick=(confirm)()>click
<a'/onclick=(confirm)()>click
这些payload利用了HTML解析器在处理属性时的特性,当属性后紧跟单引号或双引号时,解析器可能会忽略之前的错误,从而执行恶意代码。
通过构造一些无效的HTML标签,也可以绕过OpenRASP的检测。
<abc1 onclick=confirm()>click here
<abcdefabcdefa onclick=confirm()>click here
这些payload利用了HTML解析器在处理未知标签时的宽容性,即使标签名是无效的,只要属性格式正确,解析器仍然会尝试执行属性中的JavaScript代码。
OpenRASP的XSS检测逻辑在某些情况下可能存在漏洞,通过构造特定的请求参数,可以绕过检测。
构造多个虚构参数:
在请求中添加多个虚构的参数,这些参数的值可以是其他XSS payload,但需要在响应中不出现。
当虚构参数的数量达到一定数量(如11个或更多)时,OpenRASP的检测逻辑可能会因为达到某个阈值而放行真实的恶意请求。
示例payload:
在原始请求中添加多个虚构的参数,如input0到input11,这些参数的值可以是其他XSS payload。
将真实恶意请求的参数名放在这些虚构参数之后,如input。
通过这种方式,可以绕过OpenRASP的检测逻辑。
通过以上方法,可以在一定程度上绕过OpenRASP的XSS检测。然而,这并不意味着OpenRASP本身存在严重的安全问题,而是提醒我们在使用任何安全防护系统时都应保持警惕,并结合多种手段来确保Web应用的安全。