CodeQL初体验——j2eefast代码审计 一
内容提要
本文记录了作者首次使用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进行审计时,需谨慎使用技术信息并遵守相关法律,且技术内容可能不适用于所有情况。