文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

【渗透测试】XXE(外部实体注入):PHP_XXE解题简记

2023-09-16 09:55

关注

🦄一、XXE(外部实体注入)

🐹1.1 漏洞介绍

🐹1.2 漏洞识别

🐹1.3 漏洞防御

🦄二、PHP_XXE解题

🐹2.1 解题步骤

🐹2.2 注意事项

🐔2.2.1 XML语句格式

🐔2.2.2 内部实体与外部实体

🐔2.2.3 文件读取的方式


🐹1.1 漏洞介绍

    XXE漏洞发生在应用程序解析XML输入时,并没有禁止外部实体的加载,当允许引用外部实体时,通过构造恶意内容,可导致读取任意文件、执行系统命令、探测内网端口、攻击内网网站等危害。

🐹1.2 漏洞识别

    首先存在漏洞的web服务一定是存在xml传输数据的,可以在http头的content-type中查看,比如Content-Type: text/xml, post的数据包含XML格式,如:admin请求头中添加Content-Type: text/xml,或Content-type: application/xml。也可以根据url一些常见的关键字进行判断测试,例如wsdl (web服务描述语言)。或者一些常见的采用xml的java服务配置文件(spring,struts2)。

🐹1.3 漏洞防御

(1)使用开发语言提供的禁用外部实体的方法

·PHP:libxml_disable_entity_loader (true);·Java:DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();dbf.setExpandEntityReferences (false);·Python:from lxml import etreexmlData = etree.parse(xmlSource, etree.XMLParser(resolve_entities=False))

(2)过滤用户提交的XML数据

关键词:

🐹2.1 解题步骤

(1)打开靶场,输入任意账号密码登录,拦截数据包。观察到数据包,发现body体数据类似XML文件形式,故可以尝试进行XML外部实体注入

(2)在body体中添加xml语句,并重发数据包

🐹2.2 注意事项

在添加XML语句时要注意以下事项:

🐔2.2.1 XML语句格式

]>&test;admin

第一行为XML声明,用来定义XML的版本,一般情况可以不要

第二至五行为DTD,用来定义XML的合法元素。!DOCTYPE 用来声明文档类型;!ELEMENT定义一个元素(XML标签名)这里类型为ANY;!ENTITY声明一个实体(XML标签中的内容)

第六行为是XML树结构,为实际内容

注意:

a.在利用XXE攻击时!ELEMENT元素可不用定义

b.!ENTITY声明的实体要在树结构中以&实体名;的形式引用,否则无法显示读取内容

🐔2.2.2 内部实体与外部实体

内部实体声明:

外部实体声明:

🐔2.2.3 文件读取的方式

​file:///                   #file协议读取文件http://url/file.txt         #http协议读取站点下的文件PHP://filter                #文件流形式读取php文件

注意:在读取php文件时要用PHP://filter协议,以file和http协议读取.php文件则会报错,因为php文件中含有<>//等特殊字符,xml解析时会当成xml语法进行解析。那我们若是要读取php文件则可以使用php://filter/read=convert.base64-encode/resource=/etc/hosts方法对内容进行base64编码。

来源地址:https://blog.csdn.net/weixin_53972936/article/details/127542696

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯