CodeQL初体验——j2eefast代码审计 一

💡 原文中文,约2000字,阅读约需5分钟。
📝

内容提要

本文记录了作者首次使用CodeQL进行代码审计的过程,介绍了CodeQL的基本功能和特点,特别是其对代码上下文的理解能力。作者审计了一个使用Apache Shiro的开源项目,发现了反序列化漏洞和SQL注入问题,展示了CodeQL在漏洞检测中的应用。

🎯

关键要点

  • 本文记录了作者首次使用CodeQL进行代码审计的过程。

  • CodeQL是由Semmle公司开发的代码分析引擎,2019年被GitHub收购。

  • CodeQL能够将源代码转换为可分析的数据库,允许开发者查询代码以识别潜在的安全漏洞。

  • CodeQL的核心特点包括理解代码上下文语义和支持跨文件/跨函数分析。

  • 作者审计了一个使用Apache Shiro的开源项目,发现了反序列化漏洞和SQL注入问题。

  • 在审计过程中,作者使用了CodeQL自带的标准查询语句,没有自编写查询。

  • 审计发现的第一个漏洞是Apache Shiro的反序列化漏洞,使用的版本较低。

  • 使用CodeQL进行自动化审计时,发现了多个SQL注入点,提供了数据流的详细信息。

  • 通过分析SQL语句和用户输入点,确认了SQL注入的存在。

  • 文章包含免责声明,提醒读者谨慎使用技术信息并遵守相关法律。

延伸问答

CodeQL是什么,它的主要功能是什么?

CodeQL是一款由Semmle公司开发的代码分析引擎,能够将源代码转换为可分析的数据库,允许开发者查询代码以识别潜在的安全漏洞。

作者在审计过程中发现了哪些安全漏洞?

作者在审计过程中发现了反序列化漏洞和多个SQL注入问题。

CodeQL与传统静态代码分析工具相比有什么优势?

CodeQL能够理解代码的上下文语义,支持跨文件和跨函数分析,而不仅仅是简单的文本匹配。

作者使用了哪些工具和方法进行代码审计?

作者使用了CodeQL自带的标准查询语句和VS Code插件进行代码审计。

在审计中,如何确认SQL注入的存在?

通过分析SQL语句和用户输入点,确认了SQL注入的存在,特别是发现了直接拼接的参数sql_filter。

使用CodeQL进行代码审计时需要注意什么?

在使用CodeQL进行审计时,需谨慎使用技术信息并遵守相关法律,且技术内容可能不适用于所有情况。

➡️

继续阅读