我如何审计应用执行的命令?
OpenRASP 可以记录应用所有执行的命令,并上传到管理后台。若要开启,请在管理后台定位到 系统设置 -> 防护设置 -> 命令执行,将 记录或者拦截所有命令执行操作 改为 记录日志 即可(默认关闭)
通过文件函数写入 WebShell,OpenRASP 不会拦截?
我们发现,有的业务需要能够写 PHP 脚本,e.g
由于这类情况较多,官方插件已经默认不再拦截写 PHP/JSP 等脚本文件的操作。如果你没有这样的业务,可以在管理后台定位到 系统设置 -> 防护设置 -> 任意文件写入,并将 拦截所有 php/jsp 等脚本文件的写入操作 改为拦截攻击或者记录日志即可。
我使用 WebShell 查看了一些系统目录,OpenRASP 不会拦截?
理论上,web 应用不应该访问 webroot 之外的文件。但在实际情况中,我们发现了很多例外:
- 某OA厂商反馈,他们的 tomcat 应用会读取 ../../../../license.dat,会造成误报
当然,如果你想快速解决这个问题,可以通过增加文件目录探针来解决。即定位到 ,修改探针列表:
我的SQL语句里包含 chr(10) 调用,导致被拦截
在SQL注入阶段,自动化利用工具通常会大量使用 chr 函数来实现盲注攻击。因此,OpenRASP对SQL语句进行了检查,默认情况下如果 chr
函数调用超过5次,就会判定为攻击。
若要关闭这个检测算法,请打开官方插件,定位到如下内容:
删除 chr 这一行后,重新在后台上传并下推插件即可。
我在使用 phpMyAdmin 的时候,操作被 OpenRASP 拦截
URL白名单是一个比较好的解决方式,目前可以通过修改检测插件的方式来实现。请参考 管理后台 - 添加白名单 进行配置。
在下,你还需要重启PHP服务器生效。
我在应用内部,使用 ../../ 读取web目录外面的文件,OpenRASP不会拦截?
如果你没有这样的需求,可以打开这个算法。
支付回调接口,测试环境下SSRF误报?
SSRF 常见的特征为,访问的URL来自用户输入,且域名指向内网地址。比如,
按照这个思路,我们实现了 ssrf_intranet
检测算法。但是在某些测试环境下,这个算法会产生误报。
- 支付类的接口,当支付完成,通常会调用回调接口以通知支付是否成功。在测试环境,回调接口通常是内网地址,就造成了 ssrf_intranet 算法的误报。当然,线上的回调接口都是公网地址,不会有这个问题。
OpenRASP 支持XSS检测吗?
支持,是通过检查页面结构是否被用户输入所改变来实现的。
官方插件无法拦截攻击,我应该如何调试
有的时候,你会发现官方插件无法拦截攻击,你可以参考 999-event-logger.js 这个插件,将插件收到的内容打印出来,并观察官方插件的检测算法是不是不够完善?