CodeQLpy是一款基于CodeQL实现的自动化代码审计工具,目前仅支持java语言。
支持对多种不同类型的java代码进行代码审计,包括jsp文件、SpringMVC的war包、SpringBoot的jar包、maven源代码。
项目地址:
https://github.com/webraybtl/CodeQLpycodeql 应该是在前年log4j2那次核弹级漏洞后火起来的
安装codeql
在安装之前需要安装codeql 和sdk,都需要最新版本
https://github.com/github/codeql-cli-binaries/releases最好是放在同一目录下
~/CodeQL/codeql然后设置环境变量
export PATH=/User/xxxx/CodeQL/codeql:$PATHWindows 我的电脑-高级配置-环境变量-安装目录
加载配置文件
source一下/etc/profileshell输入codeql 成功即可配置完成
安装sdk
然后在 ~/CodeQL/codeql 下下载ql
git clone https://github.com/Semmle/ql安装CodeQLpy
然后环境就安装成功,把py脚本文件也解压放到CodeQL目录下
安装依赖
pip3 install -r requirements.txt然后需要进入config目录下修改ini配置
注:有空格需要加上引号
[codeql]qlpath = /Users/xxxx/CodeQL/codeql/ql/java/ql/testjdk8 = /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home/bin/javajdk11 = /Library/Java/JavaVirtualMachines/jdk-11.0.15.1.jdk/Contents/Home/bin/javaidea_decode_tool = lib/java-decompiler.jarjd_decode_tool = lib/jd-cli.jarjsp_decode_tool = lib/jsp2class.jarecj_tool = lib/ecj-4.6.1.jartomcat_jar = lib/tomcat_libspring_boot_jar = lib/spring_boot_libdecode_savedir = out/decode/general_dbpath = out/database/maven_savedir = out/mvn/decompile_type = jddebug = onmodel = fastthread_num = 10[log]path = out/log/
生成数据库初始化
// -c 选项不加默认扫描java文件,加上即扫描class文件// -t参数表示目标源码的路径,支持的源码类型是文件夹,jar包和war包python3 main.py -t /Users/xxx/Desktop/SecExample-main
生成数据库
arch -x86_64 codeql database create out/database/SecExample-main --language=java --command="/bin/bash -c /Users/xxx/CodeQLpy/out/decode/run.sh" --overwritewindows
codeql database create out/database/SecExample-main --language=java --command="run.cmd" --overwrite当你完成第一步,它会把第二步的命令显示出来,直接复制即可。
开始扫描
指定out目录下生成的数据看目录
python3 main.py -d out/database/SecExample-main扫描过程中,如发现漏洞,会高亮显示
等待一会,生成csv文件,打开就可以了
然后打开代码,进行分析