codeql学习指南

如何安装

安装codeql

基本查询

查询结构

查询基本包含3部分,作用与SQL查询的FROM、WHERE、SELECT部分类似。

查询部分 目的 细节
import java 为 Java 和 Kotlin 导入标准 CodeQL 库。 每个查询都以一个或多个语句开始import
from MethodAccess ma 定义查询的变量。声明的形式为: <type> <variable name> 我们用:MethodAccess调用表达式的变量
where ma.getMethod().hasName("equals") and ma.getArgument(0).(StringLiteral).getValue() = "" 定义变量的条件。 ma.getMethod().hasName("equals")仅限ma于调用方法 call equalsma.getArgument(0).(StringLiteral).getValue() = ""说参数必须是文字的""
select ma, "This comparison to empty string is inefficient, use isEmpty() instead." 定义每次匹配报告的内容。select用于查找不良编码实践实例的查询语句始终采用以下形式: select <program element>, "<alert message>" .equals使用解释问题的字符串报告生成的表达式。

Java-sec-code学习记录

0x00 前言

​ 最近在搞Java类的代码审计,看到这个项目记录一下自己的学习过程

0x01环境配置

Mac os 11.2.2
tomcat 8.5
idea
msyql 8.0.70

导入idea项目配置本地tomcat

git clone https://github.com/JoyChou93/java-sec-code
cd java-sec-code
mvn clean package