乐于分享
好东西不私藏

IDEA代码审计神器!IDEA插件实现Java项目全自动代码审计

IDEA代码审计神器!IDEA插件实现Java项目全自动代码审计

CodeAuditAssistant

    请勿利用文章内的相关技术从事非法渗透测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具和内容均来自网络,仅做学习和记录使用,安全性自测,如有侵权请联系删除

项目地址在文章底部哦

功能介绍

代码检查

CodeAuditAssistant 是一个代码审计辅助插件,其包含三部分功能:DecompilerCode AnalysisSinkFinder,三个部分共同配合来实现强大的代码审计辅助。

SinkFinder

SinkFinder 内置了常见的Java 代码Web漏洞sink 点,高危组件调用sink 点,通过Idea 自身的Problem 模块进入,通过此模块你可以快速收集项目中的Sink 点:

Sink 收集完毕后,双击即可跳转到代码所在位置:

反编译

反编译模块和原来目前没有更改,在列表中选择要反编译的jar 包后,点击Run 即可反编译回源代码(目前没有做任何优化、失败率高)。

代码分析

本次更新的最大内容是代码分析模块,通过此模块你可以快速查找一个方法的调用路径,下面逐步介绍功能:

首先是功能区,Generate CallGraph 按钮用于生成项目的调用图,旁边的下拉菜单用来选取调用图的构建范围,如果你选择了Entire 则会对整个项目进行构建,如果你选择了Selected Module 那么在你点击Generate CallGraph 的时候就会弹出一个窗口用来选择构建范围。

在构建图之前,你应该看到了界面上的两个复选框,这两个框分别代表:

Info:收集全部方法相关信息(用于按条件查找特定的方法)

Path:构建图时包含方法的调用路径(用于构建方法的调用关系)

一般情况下,如果你的代码量不是很大并且电脑内存充足,建议全都选上。

隐藏窗口:

点击此按钮可唤出一个隐藏窗口,如果在上一步构件图的时候你勾选了Info 就可以在这里快速按照条件查找想要的方法:

其中的ParamType 输入框需要使用全限定类名,用英文逗号分隔,并支持使用* 作为通配符,示例如下:

java.lang.String,* 用这个参数可以查找到所有第一个参数是String 类型,第二个参数是任意类型的方法。

其中Annotations 字段同样是用英文逗号分隔,但是不用写全限定类名,示例如下:

@Override,@xxx 用这个参数可以查找到所有拥有Override注解和xxx注解的方法。

使用示例:

搜索路径:

当你完成了图的构建之后(进度条可能会因为你的工具窗口太窄而无法显示,你可以选择将工具窗口拖出来作为一个独立的窗口使用),就可以使用搜索功能进行搜索:

搜索有三种方式,第一种是如果你想要查找指定两个方法的调用路径,只需要将起始方法作为ROOT,将结束方法作为SINK然后点击Search 就可以快速搜索,搜索结果进行双击就能跳转到代码对应的位置(有可能不准确):

第二种方式是如果你不知道起点,只想找到某一个方法的调用链/位置的时候,单独输入SINK 也可以进行查找:

第三种方法是,当你在程序中发现了一个有趣的方法,并想查找所有能够调用到该方法的路径时,可以通过右键菜单中的Search as sink 进行搜索,点击后会自动将你选中的方法名填写到SINK搜索框中并自动运行搜索:

所有的结果折叠可以用回车 展开或重新折叠,所有的节点都可以双击跳转到指定的位置。

log4j检测示例:

展示界面

当你没有进行任何操作的时候,会看到如下界面:

其中Root Methods中用来展示所有的没有被其他人调用的方法

Info 中用来展示一些提示信息,它会识别你的系统平台(方便提交ISSUE的时候进行识别),在没有构建图的时候CallGraph 的状态是Not Ready,只有当你成功构建图之后状态才会变成Ready。

MethodNode用来展示当前的调用图中有多少节点,以及下方会展示使用了多少内存,是否有提示信息或者报错信息等内容。

📖 项目地址

https://github.com/SpringKill-team/CodeAuditAssistant

💻 威胁情报推送群

  如果师傅们想要第一时间获取到最新的威胁情报,可以添加下面我创建的钉钉漏洞威胁情报群,便于师傅们可以及时获取最新的IOC

 如果师傅们想要获取网络安全相关知识内容,可以添加下面我创建的网络安全全栈知识库,便于师傅们的学习和使用:

    覆盖渗透、安服、运营、代码审计、内网、移动、应急、工控、AI/LLM、数据、业务、情报、黑灰产、SOC、溯源、钓鱼、区块链等  方向,内容还在持续整理中……

点分享
点收藏
点在看
点点赞
本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » IDEA代码审计神器!IDEA插件实现Java项目全自动代码审计

评论 抢沙发

7 + 5 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮