太阳集团2138备用网址

  • 防弹少年团金泰亨蓝发登各国热搜 玩儿转红粉金黑棕各种发色实力演绎“有颜任性”【组图】 2019-04-25
  • 龙烨为袁竹逍遥画派配画诗欣赏之三 2019-04-25
  • 因应增值税下调 多个豪车品牌在华降价 2019-04-25
  • “小屏论”话两会:“习语”暖人心 2019-04-25
  • 低价 贴心 保障 国美3.15,为消费者保驾护航低价贴心保障 国美315,为消费者保驾护航-国美 2019-04-25
  • 中央政治局同志向党中央和习近平总书记述职 2019-04-25
  • China Daily Website 2019-04-25
  • 【守护好我们的美丽家园】新疆的明天一定会更好 2019-04-25
  • 22年后紫霞仙子归来 可至尊宝已经不是他了 2019-04-25
  • 【独家V观】你好 意大利 2019-04-25
  • 合肥一文化公司人去楼空老板跑路 老人购买保健品被骗上万元 2019-04-25
  • 北京二手房交易实现一网通办 20分钟就办完 ——凤凰网房产北京 2019-04-25
  • NBA史上最牛的9大名帅 波波在这里只能排倒三 2019-04-25
  • 《阿丽塔》要和《流浪地球》抢票房 2019-04-24
  • 百城住宅均价环比涨幅持续收窄 变化大多在1%内 2019-04-24
  • 欢迎来到 黑吧太阳集团2138备用网址 是业内专业的游戏平台,为你提供各式各样的精品游戏,最全的游戏项目,同时还为您提供各种游戏专题游戏攻略人气论坛。

    XXE萌新进阶全攻略

    来源:本站整理 作者:佚名 时间:2019-01-25 TAG: 我要投稿

    太阳集团2138备用网址 www.r-island.com 首先声明下本文为萌新向,旨在让刚接触XXE基本概念的小伙伴们可以熟练运用高阶的XXE攻击。本文涉及层面包括概念讲解、代码审计、漏洞复现、漏洞利用、工具使用、安全开发,无论你是开发人员还是渗透工程师,都可以在这里拿到你想要的。
    在渗透领域、XXE相对来讲入门门槛是偏高的,网上的各类XXE教程对于大牛还好,但对于一些零开发基础的小伙伴来讲,着实不太友好,所以我希望通过从最基础的理论着手,为大家建立一个健全易懂的XXE漏洞复现,结合代码审计,更好的帮助大家更好的攻克这个点。
    代码审计涉及漏洞:
    XML Entity Expansion Injection (XML实体扩展注入)
    XML External Entity Injection (XML外部实体注入)
    基本概念
    在展开讲XXE之前,我们必须得了解些基础概念,因为本文重点为XXE,关于XML学习未提到的部分大家可以参照参考资料自我拓展。
    XML
    XML 指可扩展标记语言(eXtensible Markup Language)。方便大家理解,这里与HTML对比着给大家说一下:HTML和XML 为不同的目的而设计,HTML 被设计用来显示数据,其焦点是数据的外观。XML 被设计用来传输和存储数据,其焦点是数据的内容。HTML 旨在显示信息,而 XML 旨在传输信息。
    DTD
    DTD(文档类型定义)的作用是定义 XML 文档的合法构建模块。DTD的声明:指XML文档中声明该文档的DTD或DTD来源的部分,可以包含在使用它的XML文档内部,也可以以独立的DTD文档(*.dtd)文档存在。
    所以DTD一般认为有两种引用或声明方式:
    1、内部DTD:即对XML文档中的元素、属性和实体的DTD的声明都在XML文档中。2、外部DTD:即对XML文档中的元素、属性和实体的DTD的声明都在一个独立的DTD文件(.dtd)中。(网上有提到的引用公共DTD其实也算外部引用DTD的一种)
    XML基本文档结构
    xml version="1.0" encoding="UTF-8"?>
             
    ]>
                                                                             
    foo>&xxe;foo>
    XXE的复现
    说起最近比较火的XXE,不得不提2018年出现的spring中出现的XXE漏洞【CVE-2018-1259】,今天就拿它来开刀吧。
    Spring Data Commons, versions 1.13 prior to 1.13.12 and 2.0 prior to 2.0.7, used in combination with XMLBeam 1.4.14 or earlier versions, contains a property binder vulnerability caused by improper restriction of XML external entity references as underlying library XMLBeam does not restrict external reference expansion. An unauthenticated remote malicious user can supply specially crafted request parameters against Spring Data’s projection-based request payload binding to access arbitrary files on the system.
    从官方的描述中我们可以看到,此漏洞主要出现在XMLbeam1.4.14之前的版本,同时要求Spring Data Commons 1.13至1.13.11以及2.0至2.0.6的版本,目前idea默认选择的spring boot2.1.1版本漏洞已修复,我们可以看到默认的Spring Data Commons版本为2.1.0以上。

    spring boot默认库

    spring boot 2.1.1数据包报错

    spring boot 2.1.1调试报错
    显然,这是因为spring boot 2.1.1默认禁用了DTD。
    我们尝试降低spring-data-commons版本,以便漏洞正常复现,直接修改pom文件,借助maven自动解决依赖问题。

    配置pom文件
    在这里说点经验之谈,我对不同版本进行了尝试,不知道是不是个人原因,我发现版本并没有按照官方提到的那样精确,比如这里如果spring-data-commons采用2.0.6版本, XMLBeam采用1.4.13版本,你会发现DTD依然是被禁止的。所以本次漏洞复现我选择了spring-data-commons2.0.6+ XMLBeam1.4.14的组合。
    然后我们在springboot中简单的写个小功能,操作过程打算使用burpsuite复现,那就不写前端页面啦~
    核心代码如下,用来接收通过XML提交的两个数据:firstname/lastname
    public interface UserPayload {
            @XBRead("//firstname")
            @JsonPath("$..firstname")
            String getFirstname();
            @XBRead("//lastname")
            @JsonPath("$..lastname")
            String getLastname();
        }
    springboot不愧为新一代的懒人框架,简单的调整下入口文件,小程序完美启动~

    [1] [2] [3]  下一页

    【声明】:太阳集团2138备用网址(http://www.r-island.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@www.r-island.com,我们会在最短的时间内进行处理。