代码审计辅助工具开发与实战

2024-11-26 87 0

前言

在进行.Net源码审计时,往往会遇到拿到源码DLL文件,然后需要逐一使用反编译工具进行手动审计的情况。这种手动审计方法不仅费时费力,而且效率低下。虽然可以使用findstr /msi /c命令简单搜索字符串,但问题的根本在于无法确定关键字符串所在的方法位置,导致搜索字符串关键字如同大海捞针般困难。

所以一个代码审计的辅助工具就运育而生了。

工具的主要功能是批量递归检测文件夹下所有.cs.java源码中,是否包含给出的关键字符串,然后再输出上下文代码和方法中的利用链,方便快速节省时间。

实战

首先需要在配置文件中配置搜索的字符串,可以支持多个

在config.properties中配置源码所在文件夹、源码输出文件夹、搜索字符串 分别对应配置字段:csDirectory、outputDirectory、searchText

例如:

csDirectory=C:\\Users\\xxxx
outputDirectory=C:\\Users\\xxxx\\outputsearchText=where,Concat,...

为了更加便捷的展示工具搜索字符串结果,我便让结果展示了上下文几行的代码,不用再到源码中查看即可判断代码是否存在漏洞,关键源码如下:

private static void analyzeCode(Path csFile, String searchText, String outputDirectory) {
        try (BufferedReader br = new BufferedReader(new FileReader(csFile.toFile()))) {
            List<String> lines = new ArrayList<>();
            String line;
            while ((line = br.readLine()) != null) {
                lines.add(line);
            }

            Map<String, List<String>> methodCallGraph = new HashMap<>();
            Map<String, Integer> methodLineNumbers = new HashMap<>();
            Set<String> methodsWithKeyword = new HashSet<>();
            Map<String, List<String>> methodContexts = new HashMap<>();

            // 将 searchText 分割成多个关键字
            String[] keywords = searchText.split(

4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

MACOBOX:一款针对硬件安全的多合一渗透测试工具箱
Matildapp:针对Web 3.0环境的网络安全与渗透测试框架
Jumpserver_decrypto: 解密 Jumpserver ssh配置的开源工具
向日葵远程控制软件远程代码执行漏洞复现(CNVD-2022-10270, CNVD-2022-03672)
Kafka UI三大RCE高危漏洞分析
PbootCMS V3.2.9前台SQL注入漏洞(上)

发布评论