IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Codeql 环境手模手搭建和简单使用 -> 正文阅读

[开发工具]Codeql 环境手模手搭建和简单使用

0x00 前言

?

最近这个东西实在太火了,而且log4j 和最近的Spring Cloud Gateway 都说是利用codeql来挖掘的,好不好用先用了再说。所以学习一下这个东西
 ?

0x01 CodeQL是什么

?
  
在我接触这个东西之前,我一直以为这是一个代码审计的工具,类似于Fortify rips 这种东西?
 
但其实并不是,理解大大错了。。。

还记得记得SQL的全称吗? -> Structured Query Language:结构化查询语言

所以我简单通俗的理解就是:

  • Codeql = code + ql,这样就是一门面向对象的编程语言(对比SQL)
  • 是把代码结构化分析后的存在一个代码数据库里面
  • 然后就是写ql就可以进行各种查询
  • 找某个方法、类、参数的传递等等。。。

神奇。。

官方地址:

github/codeql: CodeQL: the libraries and queries that power security researchers around the world, as well as code scanning in GitHub Advanced Security (code scanning), LGTM.com, and LGTM Enterprise

https://github.com/github/codeql

?
?

0x01 相关下载

?

CodeQL本身包含两部分解析引擎+SDK

我推荐直接下载这个!可以直接配合 vscode 的现成项目,使用方便。

https://github.com/github/vscode-codeql-starter

(注意下载的时候不能直接git clon,因为里面包含子项目

image-20220304221924777

????????

0x02 安装详细步骤

????????

我这边推荐使用 vscode-codeql-starter 这个现成的项目,使用起来很方便

1、vscode 环境

  • 首先需要在官网下载并安装Visual Studio Code

Visual Studio Code - Code Editing. Redefined

  • 安装codeql插件:

image-20220304222734040

????????

2 安装 CodeQL 引擎

????????

s引擎二进制文件下载 :Releases · github/codeql-cli-binaries

(推荐直接下载codeql.zip 这个是多平台都打包在一起)

image-20220304221553522

????????

3 克隆工作车间 Codeql starter

????????

我推荐直接下载这个!可以直接配合 vscode 的现成项目,使用方便。

https://github.com/github/vscode-codeql-starter

(注意下载的时候不能直接git clone,因为里面包含子项目

image-20220304221924777

这个项目里的 submodule 也须要 Clone

使用下面命令一步到位

git clone --recursive https://github.com/github/vscode-codeql-starter/

image-20220304224556711
(如果子模块clone失败,可以自己下载放进去也行)

????????

4 配置环境变量

?

1 、在 VSCode 菜单中点击 File > Open Workspace 选择 vscode-codeql-starter.code-workspace 这个文件来打开这个工作区。

2、找到插件的扩展设置

image-20220304225202804

3、设置引擎地址

这里面添加引擎刚刚下载的 CodeQL 引擎的可执行文件

image-20220304225259649

就是codeql.zip 解压后对于系统的可执行文件地址image-20220304225430633

?

5 系统环境变量添加

?
为了方便后面使用codeql,还需要把刚刚那个添加到系统里面

我是Mac 就是这样

vim ~/.zshrc
alias codeql="/Users/zy/Documents/project/codeql/CodeQLCLI/codeql"

windows 就和添加Java环境变量一样,设置一个path到刚刚到codeql.exe 那个目录就行了

到这里环境应该就是好了,下一步就是建立数据库了(或导入数据库)

??
?

0x03 创建数据库(Java)

?

  • 打开终端使用 codeql命令
codeql database create [数据库存的路径]  --language="java"  --command="mvn clean install --file pom.xml" --source-root=[源码路径路径]

例如我的用的这个项目作为审计的目标 https://github.com/godzeo/java-sec-code

codeql database create /Users/zy/Documents/project/codeql/vscode-codeql-starter-main/database/codeql_java-sec-code  --language="java"  --command="mvn clean install --file pom.xml" --source-root=/Users/zy/Documents/project/sec_java_vul/java-sec-code

然后把这个命令拆解看一下

codeql database create java-database创建数据库,名字为codeql_java-sec-code
-language=java编译语言为java
-command=“mvn clean install --file pom.xml”利用命令进行源码编译
–source-root设置源码的路径

成功建库

image-20220305164718115

?

0x04 导入库进行查询

?

在vscode里面找到 导入数据库

image-20220305164846289

这样就是导入成功了

image-20220305164933079

下面开始查询:

跟目录/ql/java/ql/src/Security                 放着一些官方的规则(java),可直接用。
这跟目录/ql/java/ql/src/experimental/Security  一些还在实验中的规则(java)。

找到规则文件试一下,xss.ql 文件 ,右键 Run Query

image-20220305165221286

出结果了,跑通了这就是

image-20220305165413207

然后点一下就找到了漏洞点了。

image-20220305165516750

基础的完成之后,这就能勉勉强强用了,然后就是学习语法规则,自己写规则使用了

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-03-16 22:41:58  更:2022-03-16 22:42:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:31:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码