首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏LoRexxar's Blog

    深入浅出Joern(一)Joern与CPG是什么?

    今天要说的Joern也是如此。 今天介绍的Joern有什么特殊的呢? joern joern是ShiftLeft 开发的一款基于CPG制作的白盒静态扫描工具,诞生的时间不算早应该就是2021年(具体记不清了) https://github.com/joernio/joern joern做了什么? 而joern作为一个白盒的代码分析工具,主要做了两部分。 ,我们可以快捷的安装joern环境 https://github.com/joernio/joern wget https://github.com/joernio/joern/releases/latest /java-sec-code/ --output D:\program\joern\joern-cli\workspace\java-sec-code\cpg.bin.zip 然后在打开joern后将刚才生成的

    3.4K40编辑于 2023-10-17
  • 来自专栏LoRexxar's Blog

    深入浅出Joern(一)Joern与CPG是什么?

    今天要说的Joern也是如此。 今天介绍的Joern有什么特殊的呢? joern joern是ShiftLeft 开发的一款基于CPG制作的白盒静态扫描工具,诞生的时间不算早应该就是2021年(具体记不清了) https://github.com/joernio/joern joern做了什么? 而joern作为一个白盒的代码分析工具,主要做了两部分。 ,我们可以快捷的安装joern环境 https://github.com/joernio/joern wget https://github.com/joernio/joern/releases/latest /java-sec-code/ --output D:\program\joern\joern-cli\workspace\java-sec-code\cpg.bin.zip 然后在打开joern后将刚才生成的

    5.8K32编辑于 2023-10-17
  • 来自专栏有价值炮灰

    使用 Joern 进行漏洞挖掘

    本文是使用开源的 Joern 来进行漏洞挖掘的介绍。 Joern 101 Joern 是一个开源的代码分析平台,可以通过多种不同的前端将源代码转换为代码属性图(Code Property Graph),简称 CPG,然后通过 Joern 内置的查询语法对 > cpg.help ... joern-cli 套件除了 joern-parse 和 joern,还包含了 joern-export、joern-scan 等脚本用户导出控制流图以及批量扫描等功能,关于这些工具的使用细节 sh joern joern> importCode("vuln-spring") joern> importCode("xiaomi.apk") 同一个 joern-cli 可以加载多个项目,通过 workspace 虽然有很多缺点,但 Joern 也有其优势。

    2.4K11编辑于 2024-09-17
  • 来自专栏LoRexxar's Blog

    Joern In RealWorld (1) - Acutators + CVE-2022-21724

    这个系列会记录我用Joern复现真实漏洞的一些过程,同样也是对Joern的深入探索。 我首先遇到的问题就是,这个漏洞其实配置问题大于其他问题,我研究了很久认为这个问题在Joern中是不可解的。 而问题回到Joern上,Joern虽然定义了ConfigFile节点,但并没有读取所有的配置文件,包括pom.xml。或者说pom.xml在Joern眼中不算是个配置文件。 对于Joern来说,上层和下层没有直通渠道,非代码层面的信息则会被忽略掉,而专注于代码层面,这是Joern的设计理念,但同样是Joern的局限性。 最关键的是,仔细研究后感觉这部分在joern中坑相当大,说白了就是Joern的CPG结构中其实没有这种执行流概念,节点之间链接只有AST指向,边的特性也没有明确的显示。

    1.1K30编辑于 2023-10-17
  • 来自专栏LoRexxar's Blog

    深入浅出Joern(三)Joern和Neo4j常用语法大全

    前两篇文章主要讲了Joern相关技术的设计原理,以及CPG的实际表现 https://lorexxar.cn/2023/08/21/joern-and-cpg/ https://lorexxar.cn/ 2023/08/22/joern2/ 在研究Joern和Neo4j的过程中,我遇到了一个相当大的问题,就是由于我对OverflowDB包括scala和cypher语言都不熟。 Joern和Neo4j分别支持这几种冷门语言,而相应的文档其实没有解决我的问题。 所以在继续研究Joern之前,先花时间简单记录一些Joern和Neo4j实用的语法和范例,给自己当个字典随时可以查阅。 Joern https://docs.joern.io/cpgql/reference-card/ https://docs.joern.io/cpgql/node-type-steps/ 节点获取 cpg.method.name

    2.2K20编辑于 2023-10-17
  • 来自专栏学习

    如何在Ubuntu20上离线安装joern(包括sbt和scala)

    在Ubuntu 20上离线安装Joern,由于Joern通常需要通过互联网从其官方源或GitHub等地方下载,但在离线环境中,我们需要通过一些额外的步骤来准备和安装。 了 joern的离线安装 起始这些joern的离线安装和上两个一样 进入joern的官网下载压缩包后放入共享文件夹 下载链接: https://github.com/joernio/joern/releases sudo tar -xzf joern_file.tgz -C /opt/joern 我们先将他解压后,我们需要在在线的机器上配置好joern的依赖之后在将依赖复制放入自己的离线环境下: 我们进入联网的机器中 ,进入joern的安装目录: 这是编译下载之后的joern的目录,如果没有编译和打包是会有很多链接是断开的 我们进入终端,执行编译指令: sbt stage 但是由于joern的一些依赖项需要外网 /you/path/to/joern/lib /you/path/to/joern/macros 还包括了/you/path/to/joern目录下的各个文件夹中的target目录 大家会发现各个文件夹都有大量的

    1.2K10编辑于 2024-07-01
  • 来自专栏LoRexxar's Blog

    深入浅出Joern(二)CPG与图数据库

    在上篇文章里,我们从Joern入手大致介绍了CPG(Code Property Graph)的设计理念和简单逻辑 https://lorexxar.cn/2023/08/21/joern-and-cpg 旧版本的Joern使用的Gremlin,但后来的开发中换成了OverflowDB,在joern中也完全支持使用OverflowDB的查询语法。 Joern与图 Joern用了CPG来储存代码的所有节点关系和属性数据,由于CPG的信息量大,所以Joern甚至提供了官方的生成AST、CFG等其他结构的接口,对于C/C++甚至支持多种自定义的结构。 而Joern本身是自带了这个功能的,就是joern-export。它支持你导出Joern的CPG到neo4j , graphml, graphson 和 graphviz dot。 . /joern-export --repr=all --format=dot 要使用joern-export导出数据的话,需要指定CPG的位置,这个东西会存在Joern目录下的workspace当中,并且需要指定

    4.1K40编辑于 2023-10-17
  • 来自专栏LoRexxar's Blog

    Joern In RealWorld (3) - 致远OA A8 SSRF2RCE

    这篇文章的漏洞源于下面这篇文章,文章中提到该漏洞影响A8, A8+, A6等多个版本,但很多版本我都找不到对应的源码,光A8就有一万个版本,下面我们尽可能的复现漏洞和探索Joern的可能性 https: joern> importCode("S1.jar", "seeyons1") val res36: io.shiftleft.codepropertygraph.Cpg = Cpg (Graph [959587 而在后续的利用条件收集中,也可以利用joern来快速挖掘和发现。 寻找获取用户名和密码的方法 这个很简单,就像我们平时做代码审计的时候,会通过一些关键字来搜索关键代码一样,在joern中,你可以做类似的事情。我们可以搜索变量名为username的变量被调用的位置。 提供的从属关系图可以快速锁定我们要寻找的大致目标,其中的问题也相当实际,你很难在不熟悉代码的情况下利用joern做深入的扫描,这也是joern类工具的症结之一

    1.1K10编辑于 2023-11-22
  • 来自专栏LoRexxar's Blog

    深入浅出Joern(四)不常用语法大全

    在深入了解Joern的源码以及设计的时候发现Joern其实实现了很多不常用语法,很多文档中没提到的东西,其实都有比较简洁实用的方式,但也从源码的设计中发现,其实Joern的设计理念也有很多问题,这个我们以后再写到 本篇内容可以结合https://cpg.joern.io/食用 基础常见节点结构 Annotation 注解 Annotation是Java中的注解节点 astOut:通过ast边指向的节点列表 astIn contains边指向当前节点 _fileViaContainsIn:包含当前节点的file节点 _typeDeclViaContainsIn:包含当前节点的类定义节点 namespace 命名空间 joern _fileViaAstIn:通过ast边指向当前节点的file节点列表 parameter 参数 parameter在joern被定义为,函数定义的参数,而不是函数调用的参数,所以这个节点几乎只和method

    86430编辑于 2023-10-23
  • 来自专栏LoRexxar's Blog

    Joern In RealWorld (2) - Jumpserver随机数种子泄露导致账户劫持漏洞(CVE-2023-42820)

    存在泄露随机数种子,或者可以控制随机数种子的位置 在未显式重置随机数种子的基础上,引用了random来生成随机数 随机数种子泄露 其实这个漏洞用Joern来处理挺吃力的,首先是Joern只会处理目标目录下的源码 \joern ██╗ ██████╗ ███████╗██████╗ ███╗ ██╗ ██║██╔═══██╗██╔════╝██╔══██╗████╗ ██║ ║ ██║██║ ╚████║ ╚════╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═══╝ Version: 2.0.52 Type `help` to begin joern JumpServer密码重置漏洞 这里分析JumpServer的时候遇到的最大的问题是JumpServer的代码量有点儿大,导入到Joern里有83万个节点:< 其实相比Django-simple-captcha 我尝试了几次之后发现,如果想要在语句上控制限制范围,以确认random的调用次数,会遇到比较多的问题,正向分析的深入深度问题,以及循环分支的次数数据问题,问题比想象中的大,我暂且认为这不是joern的适用场景

    1K30编辑于 2023-10-27
  • 来自专栏LoRexxar's Blog

    人与代码的桥梁-聊聊SAST

    基于工具化的框架 - Joern 如果说CodeQL类的工具是探索做一个通用化的代码分析框架,来解决代码分析的场景。那Joern就走了另一条路,就是工具化。 但我们这里想讨论的并不是Joern的原理,而是理念。Joern把自己定位成了安全研究员用于代码分析的一个工具,而不是执着于用一个按钮一个规则扫描漏洞,而是提供了人和代码的桥梁。 在Joern里,我用的比较多,也是比较常见的一个场景就是寻找某个方法的调用关系。在Joern shell当中,你可以用非常简单的方法获取某个函数的调用位置,已经调用了该函数的函数。 所以在Joern当中,你可以忽略数据流分析,而是用一些非常简单的交互式命令来辅助,在Joern你可以非常简单的获取“调用了A方法的路由入口”,而更实际的利用链完全可以有人来判定,省去为了上下文分析花去的力气 当然,Joern在某些方面是成也工具化败也工具化,cpg本身强调调用关系和引用关系,Joern shell后端引用scala易用性有余实用性不足,你几乎很难在Joern的上层做数据流分析层面的分析。

    1.2K10编辑于 2023-12-23
  • 来自专栏机器之心

    NAACL 2022论文奖项公布:谷歌成最大赢家

    最佳新任务和新资源论文 论文:Automatic Correction of Human Translations 作者:Jessy Lin、Geza Kovacs、Aditya Shastry、Joern 专题贡献荣誉提名 论文:Automatic Correction of Human Translations 作者:Jessy Lin, Geza Kovacs, Aditya Shastry, Joern

    66310编辑于 2022-07-04
  • 来自专栏FreeBuf

    灾难性威胁:WRECK漏洞影响近1亿台IoT设备

    Forescout还提供了两个开源工具,可以帮助确定目标网络设备是否运行特定的嵌入式TCP/IP协议栈(Project Memoria Detector)和用于检测类似于NAME:WRECK的问题(与Joern

    64450发布于 2021-04-16
  • 来自专栏安全乐观主义

    RSAC2019创新沙盒大赛公司shiftleft介绍

    产品 针对代码审计和漏洞研究安全人员的Ocular产品: 该产品的前身是c++类的https://github.com/octopus-platform/joern,一改以往搜索漏洞需要手工查找的局面

    90310发布于 2019-11-20
  • 来自专栏漏洞战争

    学习下 BlackHat Asia 2021 大会议题

    缺乏域名压缩指针和偏移验证,比如CVE-2020-27009、CVE-2020-25795、CVE-2021-25667 对方给出了几种应对方案: 优化RFC文档,指导如何避免此类问题,毕竟这文档过于陈旧; 开源Joern

    1.8K40发布于 2021-05-20
  • 来自专栏点云PCL

    SLAM综述(4)激光与视觉融合SLAM

    参考文献 【1】Joern Rehder, Janosch Nikolic, Thomas Schneider, Timo Hinzmann, and Roland Siegwart.

    5.4K31发布于 2020-06-12
  • 来自专栏LoRexxar's Blog

    DevSecOps 究竟需要怎样的白盒?

    joern:基于AST构造属性图,然后进一步分析。引擎说起来相当不错。但是无内置规则,需要对源码很了解之后做深度二次开发。 semgrep:算是综合程度比较高的多语言静态扫描工具。

    1.1K30编辑于 2023-02-21
  • 来自专栏FreeBuf

    DevSecOps建设之白盒篇

    ,为了让外界对这套理论有更好的了解,其还开源了c/c++部分的检测引擎,感兴趣的话,各位可以去学习了解下,github地址是:https://github.com/ShiftLeftSecurity/joern

    2K20发布于 2021-01-08
  • 来自专栏phodal

    零基础指南:从 Prompt 到上下文工程构建 AI Agent 【万字长】

    代码场景下:构建代码调用关系图、依赖关系图,利用 AST(抽象语法树)提取方法、类、构造函数等结构 示例:微软的 GraphRAG,Aider 的 repomap,又或者是 Joern,CodeQL 这种基础设施

    2K11编辑于 2025-11-12
  • 来自专栏AI SPPECH

    AI辅助安全渗透测试_03

    关键特征:控制流图,数据流依赖,代码复杂度,语义特征 模型选择:随机森林(85-90%准确率),CNN(88-92%准确率),图神经网络(90-94%准确率) 工具实现:CodeQL + ML插件,Joern

    80810编辑于 2025-11-13
领券