生成DB和扫描
基础的命令
codeql database create /Tools/databases/java-sec --language=java --command='mvn clean install -DskipTests' --source-root=/Tools/project/java-sec-code --overwrite
项目地址
GitHub - waderwu/extractor-java: CodeQL extractor for java, which don't need to compile java source
生成查询库:
python3 run.py dbname(DB的名字) srcroot(源码文件)
python3 run.py dbname(DB的名字) srcroot(源码文件) -l(后面跟具体的jar包) lib1.jar lib2.jar
python3 run.py dbname(DB的名字) srcroot(源码文件) -ld(后面跟具体的文件夹) libdir1 libdir2
使用查询java-security-extended.qls分析并生成sarif:
codeql database analyze <database> <queries> --format=<format> --output=<output>
codeql database analyze --format=sarif-latest -o results/java-sec.sarif databases/java-sec java-security-extended.qls
sarif文件查看:
借助vscode的插件
插件地址:
code官网关于输出sarif文件的介绍
SARIF output — CodeQLhttps://codeql.github.com/docs/codeql-cli/sarif-output/#sarif-outputvscode下载好插件后,
资管管理器--打开的编译器文件中--右键--命令面板--
命令:sarif.showPanel
然后打开生成的文件
然后将这个sarif对应的源码包添加到对应的工作区,之后点击对应扫描出来的问题就可以跳转到对应的源码文件以及对应的行
01.codeql入门 · d4m1ts 知识库https://blog.gm7.org/%E4%B8%AA%E4%BA%BA%E7%9F%A5%E8%AF%86%E5%BA%93/02.%E4%BB%A3%E7%A0%81%E5%AE%A1%E8%AE%A1/03.codeql/01.codeql%E5%85%A5%E9%97%A8.htmlCodeQL基础语法 | Zeo's Security Lab基础QL语法CodeQL的查询语法有点像SQL,如果你学过基本的SQL语句,基本模式应该不会陌生。 结构 12345import java // 导入使用的库from int i /* ... 变量声明... */where i = 100 /* ... 逻辑公式 ... */select i /* ... 表达式 ... */ import java,导入使用的库,因为我们分析的项目是ja
https://zeo.cool/2022/04/22/CodeQL%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95/