码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • CodeQL使用流程


    前言

    好久没用CodeQL了,看了自己之前写的文章发现竟然没有做过相关记录
    然后就不知道怎么用了hhh

    使用流程

    0x1 生成数据库

    我们拿到一套源码,首先需要使用CodeQL生成数据库

    执行命令:
    codeql database create --language=
    参数说明:
    :创建数据库的路径,目录会在执行命令的时候被创建
    --language: 指定数据库语言,输入标识符。当和--db-cluster一起使用时,可以指定多个,用','分隔,也可以进行多次指定。
    --db-cluster:为多种语言创建数据库
    --command:创建一个或多个编译语言数据库的时候使用。python和JavaScript/TypeScript不需要该参数,如果编译语言不带该参数,codeql会自动检测并编译
    --no-run-unnecessary-builds:为多语言创建数据库,且包括编译和非编译语言时,可以利用 --no-run-unnecessary-builds来帮助非编译语言跳过command选项
    更多参数说明
    CodeQL支持以下语言

    语言 标识符
    C/C++ cpp
    C# csharp
    GO go
    Java java
    JavaScript/TypeScript javascript
    Python python
    Ruby ruby

    案例:

    codeql database create xxx-database  --language="java"  --command="mvn clean install --file pom.xml" --source-root=文件目录
    

    成功之后

    然后在当前目录下会生成一个名为“xxx-database”的文件夹

    0x2导入codeql规则

    这里使用‘starter workspace’,也就是git仓库

    1. 下载starter
      git clone --recursive https://github.com/github/vscode-codeql-starter/
      或者
      git clone https://github.com/github/vscode-codeql-starter/
      项目下载完成后,进入项目目录
      git submodule update --init
      git submodule update --remote
      确保包含需要的子模块
      截图使用的是第一种方法

    子模块需要定期更新

    1. 在VS Code中打开starter workspace

    注意:
    starter子模块中包括C/C++, C#, Java, JavaScript, Python, Ruby以及GO的规则,在vscode-codeql-starter\ql下
    CodeQL暂时无法扫描php代码

    0x3 导入数据库

    我们生成的数据库为文件夹,那我们就选择 "From a folder"

    运行规则

    点开项目文件,我们可以看见ql下有很多规则

    因为示例源码为java语言,我们选择java下的规则文件夹
    右键选择"CodeQL:RunQueries in Selected Files"
    里面有81个CWE规则

    查看结果

    点击左侧的一条规则,可以看到对应规则运行的结果在右侧

  • 相关阅读:
    【Java 进阶篇】JavaScript 动态表格案例
    (Java高级教程)第五章Linux使用和程序部署-第二节:Linux常用指令和VIM的使用
    跟着官方学电机,BLDC两种控制策略,学到即赚到
    要真正实现产业互联网,必然需要有一定的基础和条件才能实现
    【Python】基本数据类型(二)数字类型的运算符
    AI视频分析技术的常用开源模型及TSINGSEE青犀AI视频识别分析能力介绍
    信息化、数字化时代的变局,商业智能BI未来发展前景如何?
    懒羊羊闲话2
    maven 包管理平台 windows 安装配置 + mac 安装配置
    Linus:我终于在 M2 芯片的 MacBook 上发布了 Linux 最新版本!
  • 原文地址:https://www.cnblogs.com/HAN91/p/16500891.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号