安装测试用例

为了验证OpenRASP的漏洞检测效果,或者IAST工具的漏洞检测能力,我们提供了多个测试用例,覆盖常见高危漏洞。测试用例的部署也非常简单,复制到 webroot/webapps 目录即可。

下载测试用例

常用镜像:

文件说明

文件名 适用服务器 说明
php-vulns.tar.gz PHP 主要测试用例,包含十几种高危漏洞
vulns.war Java 主要测试用例,包含十几种高危漏洞
S2-016.war Java Struts S2-016 漏洞
fastjson.war Java fastjson RCE 漏洞
fastjson-1.2.60.war Java fastjson 1.2.60 RCE 漏洞
wxpay-xxe.war Java 某支付系统 XXE 漏洞
CVE-2019-10173.war Java xstream 反序列化漏洞
CVE-2019-12384.war Java jackson-databind 反序列化漏洞

安装测试用例

PHP 版本

  • 解压 php-vulns.tar.gz 到web目录,并通过浏览器访问

Java 版本

  • 复制war包到webapps目录,等待一段时间后可通过浏览器访问。若web服务器未开启war包自动解压缩功能,可能需要重启web服务器生效。

检测能力说明

请参考如下几篇文章:

用例使用说明

在每个测试用例的页面里,我们都给出了正常的请求样例,以及攻击性的请求样例。你可以点击页面上的链接触发,也可以使用 curl 命令发出请求。具体请参考实际的页面:

blocked

攻击拦截说明

当攻击被拦截,OpenRASP 会显示特定的拦截页面,以及当前 Request ID,事后可根据这个ID去搜索对应的攻击日志。如果你发现 OpenRASP 无法拦截攻击,很有可能是安装没有成功,请参考 常见安装问题 文档进行排查,并检查应用启动日志是否有错误,e.g catalina.out

值得注意的是,默认我们不开启拦截,需要你关闭 系统设置 -> 防护设置 -> 将所有算法设置为「记录日志」模式 开关,保存后等待一个心跳周期生效;单机版需要参考 单机版本 - 开启拦截 修改插件,才能开启拦截。

最后,若要了解报警里有哪些字段信息,请查看 日志说明 文档。

blocked

FAQ

1. SpringBoot 如何安装 JSP 测试用例?

请参考 仰望星空 - springboot中使用jsp 这篇文章进行操作,或者使用我们的servlet版本测试用例

2. OpenRASP没有产生报警

如果OpenRASP没有产生报警,请按照如下方法排查

  1. 确保OpenRASP引擎工作正常
    1. 检查OpenRASP是否支持你的服务器。此类问题Java环境出现较多,比如目前netty就不支持。排查方法是检查<rasp_home>/logs/rasp/rasp.log是否有[main][com.baidu.openrasp.HookHandler] detect server: XXXX字样,如果没有就是没识别到
    2. 检查日志目录是否有写权限。此类问题PHP环境出现较多,可以参考OpenRASP正常拦截攻击,但是alarm.log没有日志进行排查
  2. 确保漏洞存在
    1. WAF基于请求特征检测漏洞,并不关心攻击是否成功、漏洞是否存在。OpenRASP基于行为检测,只有攻击成功的时候才会产生报警,所以需要漏洞真实存在。比如,对于SQL注入漏洞,你应该优先使用sqlmap进行测试,并确保能够读取到业务数据
  3. 检查JS检测插件是否正确
    1. 如果你同时在测试IAST,请先把插件换回防护插件,即official.js
  4. 如果不是上述问题,需要手动排查原因
    1. 开启行为日志,然后检查<rasp_home>/logs/plugin/plugin.log是否有日志。
      1. 对于远程版本,可以在后台打开打印「行为日志」开关
      2. 对于单机版,请参考开启行为日志修改插件
    2. 如果没有相关行为日志,则说明目前Java、PHP agent不支持你的服务器。你可以提交PR或者联系我们,并提供最小测试用例
    3. 如果有行为日志,则说明目前JS插件无法防护你发起的攻击。同样,你可以联系我们,并提交最小测试用例

3. OpenRASP产生了报警,但是没有拦截攻击

如果是单机版,

请参考开启拦截修改插件

如果是远程管理版本

  1. 打开后台,找到 系统设置 -> 防护设置
  2. 关闭总开关,即 将所有算法设置为「记录日志」模式
  3. 对于你想要开启的检测算法,改为 拦截攻击
  4. 点击保存,并等待一个心跳周期生效(也可以通过重启tomcat/php等应用服务器快速生效)