CodeQLPy 自动化挖掘漏洞
2023-3-10 18:58:36 Author: 轩公子谈技术(查看原文) 阅读量:234 收藏

CodeQLpy是一款基于CodeQL实现的自动化代码审计工具,目前仅支持java语言。

支持对多种不同类型的java代码进行代码审计,包括jsp文件、SpringMVC的war包、SpringBoot的jar包、maven源代码。

项目地址:

https://github.com/webraybtl/CodeQLpy

codeql 应该是在前年log4j2那次核弹级漏洞后火起来的

安装codeql

在安装之前需要安装codeql 和sdk,都需要最新版本

https://github.com/github/codeql-cli-binaries/releases

最好是放在同一目录下

~/CodeQL/codeql

然后设置环境变量

export PATH=/User/xxxx/CodeQL/codeql:$PATH

Windows 我的电脑-高级配置-环境变量-安装目录

加载配置文件

source一下/etc/profile

shell输入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/test              jdk8 = /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home/bin/java              jdk11 = /Library/Java/JavaVirtualMachines/jdk-11.0.15.1.jdk/Contents/Home/bin/java              idea_decode_tool = lib/java-decompiler.jar              jd_decode_tool  = lib/jd-cli.jar              jsp_decode_tool = lib/jsp2class.jar              ecj_tool = lib/ecj-4.6.1.jar              tomcat_jar = lib/tomcat_lib              spring_boot_jar = lib/spring_boot_lib              decode_savedir = out/decode/              general_dbpath = out/database/              maven_savedir  = out/mvn/              decompile_type = jd              debug = on              model = fast              thread_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" --overwrite

windows

codeql database create out/database/SecExample-main --language=java --command="run.cmd" --overwrite

当你完成第一步,它会把第二步的命令显示出来,直接复制即可。

开始扫描

指定out目录下生成的数据看目录

python3 main.py -d out/database/SecExample-main

扫描过程中,如发现漏洞,会高亮显示

等待一会,生成csv文件,打开就可以了

 然后打开代码,进行分析


文章来源: http://mp.weixin.qq.com/s?__biz=MzU3MDg2NDI4OA==&mid=2247487777&idx=1&sn=89e7985f3e886021e34011ab4c82ac29&chksm=fce9b6eecb9e3ff829ce79db7622e66cfa687426b2224219dc508f3d10da74a819134afb14ce#rd
如有侵权请联系:admin#unsafe.sh