OpenRASP xss算法的几种绕过方法

本文介绍了OpenRASP的XSS防护算法,并详细探讨了几种绕过OpenRASP XSS检测的方法,包括标签正则绕过、标签后接单双引号、构造无效标签以及程序逻辑绕过的技巧。通过案例分析和payload展示,揭示了如何在特定情况下规避OpenRASP的XSS拦截。
摘要由CSDN通过智能技术生成

在这里插入图片描述

openrasp默认只能检测反射型XSS,存储型XSS仅IAST商业版支持。对于反射型xss,openrasp也只能检测可控输出点在html标签外的情况,本文的绕过方法是针对这种情况。如果可控输出点在html标签内,如或 内部,openrasp几乎检测不到。

测试环境

网安学习资料

windows / tomcat / jdk1.8 / openrasp 1.3.7-beta

测试环境部署参见https://www.anquanke.com/post/id/241107,或者官网文档。

在official.js中xss_userinput算法默认配置为ignore,修改为block来开启拦截。此时点击官方测试用例中下面链接,即可触发openrasp拦截。

在这里插入图片描述

openrasp xss算法

openrasp xss算法有2种。算法1是针对PHP环境,此处不考虑。算法2是用户输入匹配算法,根据注释说明,算法原理是”当用户输入长度超过15,匹配上标签正则,且出现在响应里,直接拦截”。

在这里插入图片描述

标签正则含义使用regexper网站解析如下

在这里插入图片描述

标签正则从整体上来说匹配两种情况,一是请求参数值中有子字符串以<! 开头的;二是请求参数值中有子字符串以< 开头的。对于第二种情况,标签正则会匹配< 字符后接1到12个大小写字母,再后接/ 或> 或0x00 - 0x20 字符的字符串。所以下面这些常见的xss测试payload都会拦截。

<script>alert(1)</script>         // "<script>"部分匹配标签正则
<img src=1 onerror=alert()>       // "<img "部分匹配正则,空格符对应正则中0x20
<svg/onload=alert()>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值