freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

代码审计辅助工具开发与实战
chobits02 2024-11-27 09:28:45 84297
所属地 江苏省

前言

在进行.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(
可试读前30%内容
¥ 19.9 全文查看
9.9元开通FVIP会员
畅读付费文章
最低0.3元/天
# 漏洞 # 网络安全 # 漏洞分析 # 代码审计 # 代码审计入门
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 chobits02 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
chobits02 LV.4
网络安全的尽头是? C4安全团队 | 公众号:C4安全团队
  • 21 文章数
  • 75 关注者
用友U8 Cloud移动报表mobilereport接口SQL注入漏洞分析
2025-03-26
Java代码审计 | 华天动力OA漏洞分析两则
2025-03-07
一次Jwt伪造漏洞实战案例分析
2024-12-24
文章目录