闭源系统半自动漏洞挖掘工具 SinkFinder
闭源系统半自动漏洞挖掘工具 SinkFinder
进击的HACK 2024-12-12 23:55
- 闭源系统半自动漏洞挖掘工具,针对 jar/war/zip 进行静态代码分析,增加 LLM 大模型能力验证路径可达性,LLM 根据上下文代码环境给出该路径可信分数
声明:
文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途给予盈利等目的,否则后果自行承担!
如有侵权烦请告知,我们会立即删除并致歉。谢谢
!
介绍
闭源系统半自动漏洞挖掘工具,针对 jar/war/zip 进行静态代码分析,增加 LLM 大模型能力验证路径可达性,LLM 根据上下文代码环境给出该路径可信分数
项目地址:
https://github.com/Phelaine/SinkFinder
LLM 大模型 采用的是阿里的通义大模型,默认为空,需要配置API key。
下面是没配API key的案例。
参数说明
java -jar SinkFinder-1.0-SNAPSHOT-jar-with-dependencies.jar -h _ _ __ _ _ (_) | | / _|(_) | | ___ _ _ __ | | __| |_ _ _ __ __| | ___ _ __ / __|| || '_ \ | |/ /| _|| || '_ \ / _` | / _ \| '__| \__ \| || | | || < | | | || | | || (_| || __/| | |___/|_||_| |_||_|\_\|_| |_||_| |_| \__,_| \___||_| 0.2@medi0cr1ty usage: SinkFinder -cb,--class_exclusions <arg> 自定义class_exclusions规则,类黑名单 -ci,--class_inclusions <arg> 自定义class_inclusions规则,类白名单 -d,--depth <3> 指定递归查找深度 -h,--help 帮助 -jb,--jar_exclusions <arg> 自定义jar_exclusions规则,jar包黑名单 -ji,--jar_inclusions <arg> 自定义jar_inclusions规则,jar包白名单 -l,--llm 启用通义大模型能力 -lk,--llm_key <arg> 配置通义大模型 API KEY(sk-xxx) -p,--path <arg> 指定目标分析路径 -r,--rule <rules.json> 指定Sink JSON规则路径,初始化默认resources/rules.json -s,--sink <arg> 自定义sink规则 -scb,--sink_category_block <arg> 禁用sink规则类别 -sci,--sink_category_include <arg> 配置sink规则类别
配置通义大模型 需要api key
运行命令
java-jarSinkFinder.jar-p 代码路径 -d 遍历路径递归深度
测试
靶场:
https://github.com/tangxiaofeng7/SecExample
java -jar SinkFinder.jar -p secexample-1.0.jar -d 3
logs 目录中查看结果
– llm 结尾文件: 已过滤 source + LLM 结果
-
true 结尾文件:已过滤 source
-
false 结尾文件:未过滤 source ,所有结果
日志中显示检测出的漏洞,
以fastjson举例,
recaf 反编译 jar包
可以看到此处确实存在fastjson反序列化漏洞
Runtime RCE
总结
-
规则少
-
漏报多
-
但准确率还可以
往期推荐