参数说明
若要实现检测逻辑,插件需要先注册检测方法,e.g SQL注入检测插件可注册 sql 类型的回调
plugin.register('sql', function(params, context) {
// 实现你的检测逻辑
})具体插件可注册的回调类型 type,以及回调参数 params 的样例如下。另外,所有检测点都可以使用 params.stack 参数,以获取当前堆栈信息。
数据库查询
type = sql
params = {
"server": "mysql / oracle / pgsql / mssql / sqlite",
"query": "select * from users",
}读取目录
type = directory
params = {
"path": "/home/servers/tomcat/webapps/mywar/../../../../../../../../../etc/",
"realpath": "/etc/",
"stack": [
"java.lang.ProcessBuilder.start",
"sun.reflect.NativeMethodAccessorImpl.invoke0",
"sun.reflect.NativeMethodAccessorImpl.invoke",
"sun.reflect.DelegatingMethodAccessorImpl.invoke",
...
]
}请求参数
当应用接受到请求时,插件可以对请求进行拦截。(注意: PHP Agent 1.1 开始才支持)
这里不会传递任何参数,如果需要获取请求相关信息,请使用 API接口
读取文件
注意:
对于 PHP 服务器,若实际读取文件以
https://、http://、ftp://之一开头,将会调用服务器端 HTTP 请求检测点,不会触发读取文件检测点
写入文件
出于性能考虑,OpenRASP 目前只会提供文件名和绝对路径两个参数
注意:
tomcat 等应用服务器,在部署war包时,暂时不会触发这个回调
对于NTFS数据流,e.g
abc.php::$DATA,插件看到的path可能是abc.php::$DATA,realpath可能是c:\inetpub\wwwroot\abc.php
删除文件
文件包含操作
url 可能是协议(file、http等等),也能是相对路径(/abc/、abc.txt)
支持的文件包含方式如下,
Java - JSTL import 方式
只有
url里出现了://且不为/开头时,我们才会调用插件
PHP - include/require/include_once/require_once 四种方式
当
url里包含://时,调用插件如果文件以
.php或者.inc结尾,或者真实路径在 webroot 下面,不会进入插件其他情况进入插件
具体参数
WebDAV 操作
目前仅支持 MOVE、COPY 两种方法
文件上传
目前,OpenRASP 支持 org.apache.commons.fileupload 上传组件(SpringMVC、Struts 底层使用)
出于性能考虑,OpenRASP 只会提取文件前 4 KB 的内容,若要获取更多字节,请参考配置文档
文件重命名
当源是文件,且目标不为文件夹(可以不存在)时才会进入插件
命令执行
XML 外部实体引用
目前,PHP不支持XXE检测
Struts OGNL 表达式解析
注意: 为了减少性能影响,仅当表达式长度超过 30 时才会调用插件。可手动 ognl.expression.minlength 选项来进行调整
RMI 反序列化
服务器端 HTTP 请求
支持的请求方式包含如下 (对应 function 字段),
JDK 中的
URL.openConnection的方式 (url_open_connection)commons-httpclient框架请求方式 (commons_http_client)httpclient框架请求方式 (http_client)PHP stream 请求、cURL 请求
服务器端 HTTP 请求 - 重定向之后
支持的请求方式包含如下 (对应 function 字段),
JDK 中的
URL.openConnection的方式 (url_open_connection)httpclient框架请求方式 (http_client)PHP stream 请求、cURL 请求
代码执行
目前支持 eval/function 两种函数
类库加载
目前仅支持 java System.load() 方式
响应检查
说明
Java 下面如果 body 过大,会多次分段调用
当响应类型包含
image、audio、video字样,不会进入插件该检测点不支持拦截
参数
Last updated