笔者作为一名安全竞赛研究员,尝试使用CodeQL来协助CTF中Java题目的代码审计。本文将围绕着使用CodeQL来查询Java中函数的流向,以及类与函数常用谓词的运用,在CTF的代码审计时快速判断某个函数是否会流向一些可能存在利用的函数。 基础的环境搭建 关于CodeQL的环境安装教程,网上已经有比较多的文章了,这里就不赘述。给出几个...
在这个CTF比赛中就存在有fastjson JNDI链的挖掘过程,分析一下 这题的预期解就是通过从Lib依赖中挖掘新链 这里操作的是https://github.com/quartz-scheduler/quartz 之后git done, 构建数据库之后导入到vscode中 使用我们上面的ql规则查询一下在这里没有找到题目中所说的利用链是因为题目讲getTransaction改为了public...
Secure code game: A series of interactive sessions that guide you from finding insecure code patterns manually, through to using CodeQL to find insecure code patterns automatically. Security Lab CTF: A series of Capture the Flag (CTF) challenges that are designed to help you learn how to use ...
CodeQL入门 - U-Boot Challenge 根据GitHub Security Lab CTF 2: U-Boot Challenge(https://securitylab.github.com/ctf/uboot/)来学习codeql。官方的那个github机器人好像已经没了,记录下入门的过程。 一 环境搭建 1.1 codeql-cli & visual studio code & 插件codeql...
开设了针对codeql的CTF比赛:https://securitylab.github.com/ctf,在Research这一栏有很多研究人员挖和分析漏洞的技术经验分享 GitHub成为了授权的CVE编号颁发机构(CNA),这意味着它可以发布漏洞的CVE标识符。 赏金规则查看:https://securitylab.github.com/bounties ...
场景1:在做GitHub CTF案例时这块有体会,CodeQL为减少误报很多地方都需要我们根据相应场景自己连接数据流,比如getter。 这种情况需要将调用方法的对象(通过getQualifier谓词获取限定符)和调用方法的返回值连接起来。如下操作就是从get%方法访问到它的限定符作为附加步骤重新连接起来。
场景1:在做GitHub CTF案例时这块有体会,CodeQL为减少误报很多地方都需要我们根据相应场景自己连接数据流,比如getter。 这种情况需要将调用方法的对象(通过getQualifier谓词获取限定符)和调用方法的返回值连接起来。如下操作就是从get%方法访问到它的限定符作为附加步骤重新连接起来。
利用CodeQL 挖掘 CVE-2020-9297 是 Github CTF 中的第四道题目,官方的答案已经公布了https://securitylab.github.com/ctf/codeql-and-chill/answers,这里来学习一下解决的思路。 漏洞描述 根据官方的描述,可以看到漏洞的成因在于 Netflix Titus 在使用Java Bean Validation (JSR 380)的自定义 约束验证的时候,使用...
利用Github Actions生成CodeQL数据库 -- 以AliyunCTF2024 Chain17的反序列化链挖掘为例 背景lgtm社区在2022年关闭后,CodeQL只能在本地手动构建,lgtm则被整合进了Github Code Scanning中。可以在Github Action中使用github/codeql-action来用官方提供的queries对repository的代码进行扫描,结果会显示为Code Scanning Alerts。
codeql是一款强大的静态扫描工具,通过codeql强大的自定义规则我们可以编写sql语句来搜索源码中我们可能感兴趣的代码。ctf中高版本libc的利用方法中很多都用利用了IO函数,即利用stdin/stdout/stderr->vtable 修改虚表指针指向对我们有用的伪造的vtable又或者其他存在可利用函数的_IO_xxx_jumps虚表,如:house_of_kiwi,因此...