安装测试用例
Last updated
Last updated
为了验证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
命令发出请求。具体请参考实际的页面:
如果OpenRASP没有产生报警,请按照如下方法排查
确保OpenRASP引擎工作正常
检查OpenRASP是否支持你的服务器。此类问题Java环境出现较多,比如目前netty就不支持。排查方法是检查<rasp_home>/logs/rasp/rasp.log
是否有[main][com.baidu.openrasp.HookHandler] detect server: XXXX
字样,如果没有就是没识别到
确保漏洞存在
WAF基于请求特征检测漏洞,并不关心攻击是否成功、漏洞是否存在。OpenRASP基于行为检测,只有攻击成功的时候才会产生报警,所以需要漏洞真实存在。比如,对于SQL注入漏洞,你应该优先使用sqlmap进行测试,并确保能够读取到业务数据
检查JS检测插件是否正确
如果你同时在测试IAST,请先把插件换回防护插件,即official.js
如果不是上述问题,需要手动排查原因
开启行为日志,然后检查<rasp_home>/logs/plugin/plugin.log
是否有日志。
对于远程版本,可以在后台打开打印「行为日志」
开关
如果没有相关行为日志,则说明目前Java、PHP agent不支持你的服务器。你可以提交PR或者联系我们,并提供最小测试用例
如果有行为日志,则说明目前JS插件无法防护你发起的攻击。同样,你可以联系我们,并提交最小测试用例
如果是单机版,
如果是远程管理版本
打开后台,找到 系统设置 -> 防护设置
关闭总开关,即 将所有算法设置为「记录日志」模式
对于你想要开启的检测算法,改为 拦截攻击
点击保存,并等待一个心跳周期生效(也可以通过重启tomcat/php等应用服务器快速生效)
当攻击被拦截,OpenRASP 会显示特定的拦截页面,以及当前 Request ID
,事后可根据这个ID去搜索对应的攻击日志。如果你发现 OpenRASP 无法拦截攻击,很有可能是安装没有成功,请参考 文档进行排查,并检查应用启动日志是否有错误,e.g catalina.out
值得注意的是,默认我们不开启拦截,需要你关闭 系统设置 -> 防护设置 -> 将所有算法设置为「记录日志」模式 开关,保存后等待一个心跳周期生效;单机版需要参考 修改插件,才能开启拦截。
最后,若要了解报警里有哪些字段信息,请查看 文档。
请参考 这篇文章进行操作,或者使用我们的servlet版本测试用例
检查日志目录是否有写权限。此类问题PHP环境出现较多,可以参考进行排查
对于单机版,请参考修改插件
请参考修改插件