前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Freddy:一款基于活动被动扫描方式的Java&.NET应用程序漏洞扫描工具

Freddy:一款基于活动被动扫描方式的Java&.NET应用程序漏洞扫描工具

作者头像
C4rpeDime
发布2020-01-20 14:42:32
1.5K0
发布2020-01-20 14:42:32
举报
文章被收录于专栏:黑白安全黑白安全

Freddy是一款开源工具,该工具的功能基于主动/被动式扫描,在Freddy的帮助下,研究人员可以快速查找Java和.NET应用程序中的反序列化安全问题。

Freddy介绍

工具引入了一款Burp Suite插件来检测并利用目标引用程序中序列化库/ API中的安全漏洞。

早在2017年美国Black Hat黑客大会以及DEF CON25上,研究人员Alvaro Muñoz和Oleksandr Mirosh曾发布过一份标题为《Fridaythe 13th: JSON Attacks》的研究报告。研究人员在报告中指出,他们对大量Java和.NET应用程序中的JSON以及XML序列化库进行了安全分析,并且发现大多数库都支持对运行时对象进行序列化操作,而这种情况很容易引发反序列化安全问题,并导致任意代码/命令执行漏洞出现。

这款插件由Nick Bloor(@nickstadb)开发,基于的也是Alvaro Muñoz和Oleksandr Mirosh的研究成果。

该插件实现了主动式和被动式扫描这两种方式,可以识别并利用目标代码库中的安全漏洞。

功能介绍

被动式扫描

Freddy可以通过识别类型标识符、HTTP请求签名或HTTP响应来被动检测目标代码库或API中潜在的序列化/反序列化漏洞。比如说,代码库FastJson使用了一个JSON域“$types”来指定序列化对象的类型。

主动式扫描

Freddy引入了主动式扫描功能,可以在扫描的过程中,尝试对受影响的代码库进行漏洞利用测试。主动式扫描在检测和利用目标漏洞时使用了下列三种方法:基于异常的检测、基于时间的检测和基于Collaborator的检测。

基于异常的检测

在基于异常的主动扫描过程中,Freddy会向HTTP请求中注入测试数据,并尝试触发异常或错误信息。如果在目标应用程序所返回的响应信息中观察到了错误信息,那么就说明这里存在安全问题。

基于时间的检测

在某些情况下,基于时间的测试Payload可以用来检测安全漏洞,因为操作系统的命令执行会在反序列化的过程中被触发执行,在这个过程中,其他活动都会被阻止,直到操作系统命令执行完成。Freddy使用的Payload中包含了“ping [-n|-c] 21 127.0.0.1”,目的就是为了实现命令的延迟执行。

基于Collaborator的检测

基于Collaborator的Payload使用了nslookup命令来解析Burp Suite Collaborator生成的域名,并且会尝试从这个域名向Java应用程序中加载远程类。Freddy每隔60秒就会检查一次Collaborator的问题反馈,并以下列形式将问题记录在日志文件中。

代码语言:javascript
复制
RCE(Collaborator)

支持的扫描对象

目前该工具支持的扫描对象有:

Java

BlazeDSAMF 0 (detection, RCE) BlazeDSAMF 3 (detection, RCE) BlazeDSAMF X (detection, RCE) Burlap(detection, RCE) Castor(detection, RCE) FlexJson(detection) Genson(detection) Hessian(detection, RCE) Jackson(detection, RCE) JSON-IO(detection, RCE) JYAML(detection, RCE) Kryo(detection, RCE) Kryousing StdInstantiatorStrategy (detection, RCE) ObjectInputStream(detection, RCE) Red5AMF 0 (detection, RCE) Red5AMF 3 (detection, RCE) SnakeYAML(detection, RCE) XStream(detection, RCE) XmlDecoder(detection, RCE) YAMLBeans(detection, RCE)

.NET

BinaryFormatter(detection, RCE) DataContractSerializer(detection, RCE) DataContractJsonSerializer(detection, RCE) FastJson(detection, RCE) FsPicklerJSON support (detection) FsPicklerXML support (detection) JavascriptSerializer(detection, RCE) Json.Net(detection, RCE) LosFormatter(detection, RCE) – Note not a module itself, supported throughObjectStateFormatter NetDataContractSerializer(detection, RCE) ObjectStateFormatter(detection, RCE) SoapFormatter(detection, RCE) Sweet.Jayson(detection) XmlSerializer(detection, RCE)

项目地址

Freddy:【GitHub传送门

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-05-175,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Freddy介绍
  • 功能介绍
    • 被动式扫描
      • 主动式扫描
        • 基于异常的检测
          • 基于时间的检测
            • 基于Collaborator的检测
            • 支持的扫描对象
              • Java
                • .NET
                • 项目地址
                相关产品与服务
                文件存储
                文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档