OpenRASP Documents (Old)
  • 简介
  • 安装部署
    • 兼容性说明
    • 安装管理后台
    • 快速接入
      • PHP 服务器
      • Tomcat 服务器
      • JBoss 服务器
      • Wildfly 服务器
      • Resin 服务器
      • Jetty 服务器
      • Spring Boot 框架
      • WebLogic 服务器
      • WebSphere 服务器
      • 宝兰德BES服务器
      • 东方通TongWeb服务器
      • 中创InforSuiteAS服务器
      • 普元PAS服务器
    • 安装测试用例
    • 安装灰盒扫描工具
      • IAST 高级配置选项
    • SIEM 系统集成
      • Splunk
      • Logstash
    • 大规模部署
    • 卸载软件
  • 服务配置
    • 日志说明
    • 管理后台
    • 单机版本
    • 其他配置
  • 功能说明
    • 攻击检测能力说明
    • CVE 漏洞覆盖说明
    • 安全基线检查
    • 应用加固支持
    • 应用异常监控
    • 类库信息查询
    • HTML 响应修改
  • 插件开发
    • 开发插件
    • 接口说明
      • RASP 类接口
      • Context 类接口
    • 参数说明
    • 单元测试
    • 在线调试
    • 官方插件定制
  • 二次开发
    • 架构说明
      • Java 版本
      • PHP 版本
      • 管理后台
      • IAST 扫描器
      • Hook 函数列表
    • 从源代码编译
      • Java 版本
      • PHP 版本
      • 管理后台
    • 云控后台接口
    • 代码调试
    • 添加新的Hook点
    • 添加新的插件API
    • 提交你的代码
  • 性能测试
  • 版本变更
  • 关于我们
Powered by GitBook
On this page
  • Java 版本
  • PHP 版本
Export as PDF
  1. 二次开发
  2. 架构说明

Hook 函数列表

本文档列出了我们挂钩的函数列表

Java 版本

攻击检测

其中,SQL注入检测点为 execute/executeUpdate/executeQuery/executeBatch/executeBatchInternal/addBatch 方法之一,具体请看我们在github的源代码,这里不在赘述

检查内容
方法名称

文件上传

org.apache.commons.fileupload.disk.DiskFileItem.setHeaders()

org.apache.commons.fileupload.FileUploadBase.parseRequest()

文件读取

java.io.FileInputStream(File file)

文件写入

java.io.FileOutputStream()

java.io.FileOutputStream(String name, boolean append)

文件重命名

java.io.File.renameTo()

文件遍历

java.io.File.list()

SSRF

org.apache.commons.httpclient.URI.parseUriReference()

org.apache.http.client.methods.HttpRequestBase.setURI()

com.squareup.okhttp3.HttpUrl.parse(String)

com.squareup.okhttp.HttpUrl.parse(String)

sun.net.www.protocol.http.HttpURLConnection.connect()

反序列化

java.io.ObjectInputStream.resolveClass

命令执行

java.lang.UNIXProcess.<init>

java.lang.ProcessImpl.<init>

OGNL 表达式执行

ognl.OgnlParser.topLevelExpression()

XXE

com.sun.org.apache.xerces.internal.util.XMLResourceIdentifierImpl()

org.apache.xerces.util.XMLResourceIdentifierImpl的setValues()

JSTL import

org.apache.taglibs.standard.tag.common.core.ImportSupport.targetUrl()

DubboRPC

com.alibaba.dubbo.rpc.filter.ContextFilter.invoke()

com.alibaba.dubbo.rpc.filter.GenericFilter.invoke()

SQL 注入

com.mysql.jdbc.StatementImpl

com.mysql.jdbc.PreparedStatement

com.mysql.cj.jdbc.PreparedStatement

org.sqlite.Stmt

org.sqlite.PrepStmt

org.sqlite.jdbc3.JDBC3Statement

org.sqlite.jdbc3.JDBC3PreparedStatement

oracle.jdbc.driver.OracleStatement

oracle.jdbc.driver.OraclePreparedStatement

com.microsoft.sqlserver.jdbc.SQLServerStatement

com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement

org.postgresql.jdbc.PgStatement

org.postgresql.jdbc1.AbstractJdbc1Statement

org.postgresql.jdbc2.AbstractJdbc2Statement

org.postgresql.jdbc3.AbstractJdbc3Statement

org.postgresql.jdbc3g.AbstractJdbc3gStatement

org.postgresql.jdbc4.AbstractJdbc4Statement

com.ibm.db2.jcc.am

com.ibm.db2.jcc.am.Connection

基线检查

检查内容
方法名称

数据库连接账号

com.mysql.jdbc.NonRegisteringDriver.connect()

com.mysql.cj.jdbc.NonRegisteringDriver.connect()

org.sqlite.JDBC.connect()

com.microsoft.sqlserver.jdbc.SQLServerDriver.connect()

org.postgresql.Driver.connect()

oracle.jdbc.driver.OracleDriver.connect()

com.ibm.db2.jcc.DB2Driver.connect()

服务器启动检测点

用途
方法名称

Tomcat

org.apache.catalina.startup.Catalina.start()

Jetty

org.eclipse.jetty.server.Server.doStart()

JBoss 4

org.jboss.system.server.ServerImpl.start()

JBoss 5

org.jboss.bootstrap.AbstractServerImpl.start()

JBoss 6

org.jboss.bootstrap.impl.base.server.AbstractServer.start()

Resin

com.caucho.server.resin.Resin.initMain()

WebSphere

org.eclipse.core.launcher.Main.run()

Tomcat/Jetty/JBoss/Resin/WebSphere 通用

用途
方法名称

preRequest

apache.catalina.connector.CoyoteAdapter.service()

request

apache.catalina.core.ApplicationFilterChain.doFilter()

缓存body

org.apache.catalina.connector.InputBuffer.readByte(int)

org.apache.catalina.connector.InputBuffer.read(byte[],int ,int)

HTML 注入

org.apache.catalina.connector.OutputBuffer.close()

Resin 服务器

用途
方法名称

preRequest

com.caucho.server.http.HttpRequest.handleRequest()

com.caucho.server.http.HttpRequest.handleResume()

request

com.caucho.server.dispatch.ServletInvocation.service()

com.caucho.server.dispatch.ServletInvocation.doResume()

缓存body

com.caucho.server.connection.ServletInputStreamImpl.read(int)

com.caucho.server.connection.ServletInputStreamImpl.read(byte[],int ,int)

com.caucho.server.http.ServletInputStreamImpl.read(int)

com.caucho.server.http.ServletInputStreamImpl.read(byte[],int ,int)

HTML注入

com.caucho.server.connection.AbstractHttpResponse.finish()

com.caucho.server.connection.AbstractHttpResponse.finishInvocation()

com.caucho.server.http.AbstractHttpResponse.finish()

com.caucho.server.http.AbstractHttpResponse.finishInvocation()

Jetty 服务器

用途
方法名称

preRequest

org.eclipse.jetty.server.Server.handle()

request

org.eclipse.jetty.server.handler.HandlerWrapper.handle()

缓存body

org.eclipse.jetty.server.HttpInput.read(int)

org.eclipse.jetty.server.HttpInput.read(byte[],int ,int)

HTML注入

org.eclipse.jetty.server.HttpOutput.close()

WebSphere 服务器

用途
方法名称

preRequest

com.ibm.ws.webcontainer.WebContainer.handleRequest()

request

com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters()

缓存body

com.ibm.ws.webcontainer.srt.http.HttpInputStream.read(int)

com.ibm.ws.webcontainer.srt.http.HttpInputStream.read(byte[],int ,int)

HTML注入

com.ibm.ws.webcontainer.srt.SRTServletResponse.finish()

PHP 版本

攻击检测

检查内容
方法名称

webshell callable

命令执行

命令执行(webshell)

目录遍历

XSS(echo)

文件读取

文件写入

文件写入(webshell)

文件拷贝

文件移动

文件上传

文件包含

文件运行(webshell)

SQL注入

SSRF

基线检查

检查内容
方法名称

数据库连接账号

PreviousIAST 扫描器Next从源代码编译

Last updated 11 days ago

array_walk
array_map
array_filter
ReflectionFunction::__construct
passthru
system
exec
shell_exec
proc_open
popen
pcntl_exec
passthru
system
exec
shell_exec
proc_open
popen
pcntl_exec
dir
scandir
opendir
echo
file
readfile
file_get_contents
fopen
SplFileObject::__construct
file_put_contents
fopen
SplFileObject::__construct
file_put_contents
copy
rename
move_uploaded_file
include
eval
assert(仅PHP5)
mysql_query(仅PHP5)
mysqli_query
mysqli::query
mysqli_real_query
mysqli::real_query
mysqli_prepare
mysqli::prepare
PDO::query
PDO::exec
PDO::prepare
pg_query
pg_send_query
pg_prepare
SQLite3::query
SQLite3::exec
SQLite3::querySingle
curl_exec
mysql_connect (仅PHP5)
mysql_pconnect (仅PHP5)
mysqli::__construct
mysqli::connect
mysqli_connect
mysqli::real_connect
mysqli_real_connect
PDO::__construct
pg_connect
pg_pconnect