使用DOOP发现漏洞信息流:针对Apache Commons Text 远程代码执行漏洞的攻击检测
2023-11-29 16:33:23
1. Apache Commons Text 简介
Apache Commons Text 是一个用于处理文本的 Java 库。它提供了各种操作文本的实用工具,例如字符串操作、正则表达式和 HTML 解析。
2. Commons Text 远程代码执行漏洞(CVE-2022-42889)
2022年3月,Apache Commons Text中发现了一个远程代码执行漏洞,编号为CVE-2022-42889。该漏洞允许攻击者通过构造恶意字符串来执行任意代码。
3. Doop简介
Doop是一个开源的静态程序分析框架,可以用来检测Java代码中的漏洞。它使用污点分析技术来跟踪数据流,并识别可能导致漏洞的潜在攻击点。
4. Doop App Only模式
Doop App Only模式是一种分析模式,它只分析应用程序的代码,而不会分析库代码。这使得分析速度更快,但也会降低检测漏洞的准确性。
5. 修改增强Doop App Only模式下的分析规则
为了提高Doop App Only模式下检测Commons Text RCE漏洞的准确性,我们可以修改增强分析规则。具体来说,我们可以添加以下规则:
- 当一个字符串被传递给
StringSubstitutor
类的substitute
方法时,污点分析应该传播到该字符串。 - 当一个字符串被传递给
StrSubstitutor
类的replace
方法时,污点分析应该传播到该字符串。 - 当一个字符串被传递给
MessageFormat
类的format
方法时,污点分析应该传播到该字符串。
6. 使用修改后的Doop App Only模式检测漏洞
使用修改后的Doop App Only模式,我们可以检测到Commons Text RCE漏洞。具体来说,我们可以使用以下步骤来检测漏洞:
- 将应用程序的代码导入Doop中。
- 选择Doop App Only模式。
- 运行Doop分析。
- 查看分析结果。
如果Doop分析结果中包含以下内容,则表示应用程序存在Commons Text RCE漏洞:
- 一个污点传播到
StringSubstitutor
类的substitute
方法。 - 一个污点传播到
StrSubstitutor
类的replace
方法。 - 一个污点传播到
MessageFormat
类的format
方法。
7. 结论
通过修改增强Doop App Only模式下的分析规则,我们可以提高Doop检测Commons Text RCE漏洞的准确性。这种方法可以帮助我们发现应用程序中的潜在漏洞,并及时修复漏洞。