来自许少(4ra1n)开发的一款Java自动代码审计工具,尤其针对SpringBoot框架,也可自行改造以适配其他情况
提供一个SpringBoot的Jar包即可进行自动代码审计并生成报告,底层技术基于字节码分析
由于没有真正的执行,例如无法识别过滤等操作,所以会存在误报false positive
注意:漏洞检测并不是简单地检测某个方法内是否包含敏感方法,而是从每个Controller
的每个Mapping
的每一个用户可控参数开始分析与追踪,构建出方法调用链,分析这个参数在整个链路的过程
下载链接见文末
使用GUI
启动器
选择好你的Jar
包后点击Start
即可,默认开启所有配置
注意:目标Jar
是Java 8
编译的情况下兼容性最佳,高版本Java
可能优化指令导致与原规则不匹配产生漏报
选项:
-
import rt.jar 绝大多数情况请勿勾选
-
analyze all libs 绝大多数情况请勿勾选
-
debug mode 保存一些临时的分析结果到当前目录中
DoS
配置DoS
模块:
-
for
循环停止条件可控 -
正则规则和输入同时可控
-
数组初始化大小可控
-
ArrayList
初始化大小可控
RCE
配置RCE
模块:
-
Runtime.exec
直接/拼接执行命令 -
ProcessBuilder
直接/拼接执行命令 -
JNDI
注入导致RCE(lookup
内容可控) -
GroovyShell.evaluate
直接/拼接执行命令 -
Spring EL
直接/拼接执行命令
SSRF
配置SSRF
模块:
-
HttpUrlConnection
请求 -
Apache HttpClient
请求 -
Socket
建立新连接 -
OKHttp
请求
SQL Injection
配置SQL Injection
模块:
-
JdbcTemplate.update
存在字符串拼接 -
JdbcTemplate.execute
存在字符串拼接 -
JdbcTemplate.queryAny
存在字符串拼接 -
Statement.executeQuery
存在字符串拼接 -
Statement.executeUpdate
存在字符串拼接 -
Statement.execute
存在字符串拼接
Open Redirect
配置Redirect
模块:
-
使用
HttpServletResponse.sendRedirect
重定向 -
使用
SpringMVC
直接返回String
可控 -
使用
SpringMVC
返回ModelAndView
可控
Deserialization
配置Deserialization
模块:
-
Java
原生反序列化 -
Fastjson
反序列化 -
SnakeYAML
反序列化 -
Jackson
反序列化 -
Hessian2
反序列化 -
XMLDecoder
反序列化
使用API
可以使用以下的方式方便地进行扫描,注意三个boolean
参数绝大多数情况应该设置为false
public static void testRCE() {
CodeInspectorinspector = new CodeInspectorImpl();
List<ResultInfo> results =inspector .analyzeRCE(
"your/path/to/jar/file",
false, false, false);
System.out.println(results.size());
}
Graphviz
指定Controller
类名和Mapping
的方法名,以及分析的参数索引,即可画图
4 免责申明
未经授权许可攻击目标是非法的。本程序应仅用于授权的安全测试与研究目的。
软件来源互联网,版权归原作者所有,侵删本资源仅供个人学习交流、测试使用。
所有内容请在下载后24小时内删除,禁止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任
下载地址
点击在下方公众号回复 code-inspector 获取
关注获取更多
长亭科技工具集下载站: 来自长亭科技旗下平台CT Stack提供了一个较为完备的安全工具下载站, 号称安全行业的APP Store, 你想要的都有, 扫描下方二维码即可进入
往期推荐
同时欢迎各位加入交流群进行交流,群里会不定期的分享一些工具和教程,添加时请根据您的来意备注安全交流或软件资源交流
原文始发于微信公众号(安全X档案):一款功能强大的Java自动代码审计工具
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论