【代码审计】CLTPHP_v5.5.3前台XML外部实体注入漏洞分析
0x01 环境准备
CLTPHP官网:http://www.cltphp.com
网站源码版本:CLTPHP内容管理系统5.5.3版本
程序源码下载:https://gitee.com/chichu/cltphp
默认后台地址: http://127.0.0.1/admin/login/index.html
默认账号密码: 后台登录名:admin 密码:admin123
测试网站首页:
0x01 代码分析
1、漏洞文件位置:/app/wchat/controller/Wchat.php第100-133行:
在这段代码中,用file_get_contents("php://input") 接收XML数据,然后带入simplexml_load_string函数中,导致程序在实现上存在XML外部实体注入。
接着往下看,如何去利用呢?
xml的解析结果返回给$postObj,进行条件判断,根据MsgType取值进入不同的回复机制中处理,当MsgType=text,进入MsgTypeText函数,跟进这个函数看看:
2、漏洞文件位置:/app/wchat/controller/Wchat.php 第141-172行:
这段函数进行消息回复处理,将获得$contentStr进行判断是否是数组,然后带入函数处理,最后返回结果。我们来看一下event_key_text函数:
3、漏洞文件位置:/extend/clt/WchatOauth.php 第155-171行:
通过sprintf函数返回6个节点,其中ToUserName、FromUserName可控,我们可以通过构造Payload,实现任意文件读取,攻击者可利用该漏洞获取网站敏感信息。
0x02 漏洞利用
1、 通过构造Paylod读取win.ini文件内容
Pauload:http://127.0.0.1/wchat/wchat/getMessage.html
- <?xml version="1.0" encoding="utf-8"?>
- <!DOCTYPE xxe [<!ELEMENT name ANY ><!ENTITY xxe SYSTEM "file:///C:/windows/win.ini" >]>
- <root><MsgType>text</MsgType> <ToUserName>&xxe; </ToUserName></root>
0x03 修复建议
方案一、使用开发语言提供的禁用外部实体的方法
PHP:libxml_disable_entity_loader(true);
方案二、过滤用户提交的XML数据 关键词:<!DOCTYPE和<!ENTITY,或者,SYSTEM和PUBLIC。
最后
欢迎关注个人微信公众号:Bypass--,每周原创一篇技术干货。
【代码审计】CLTPHP_v5.5.3前台XML外部实体注入漏洞分析相关推荐
- XML外部实体注入漏洞——XXE简单分析
前言: XXE漏洞经常出现在CTF中,一直也没有系统的学习过,今天就来总结一波. 文章目录 一.XXE 漏洞是什么: 二.XML基础知识: 1.XML是什么? 2.XML文档结构: DTD声明方式: ...
- Pikachu-XXE(xml外部实体注入漏洞)
XXE -"xml external entity injection" 既"xml外部实体注入漏洞". 概括一下就是"攻击者通过向服务器注入指定的x ...
- PHP环境 XML外部实体注入漏洞
PHP环境 XML外部实体注入漏洞 环境介绍 漏洞原理 漏洞复现 修补方案和建议 环境介绍 libxml 2.8.0 libxml2.9.0以后,默认不解析外部实体,导致XXE漏洞逐渐消亡.为了演示P ...
- Xml外部实体注入漏洞(XXE)与防护
转自腾讯安全应急响应中心 一.XML基础知识 XML用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言.XML文档结构包括XML声 ...
- XML 外部实体注入漏洞
0x01 XXE(XML外部实体注入)漏洞 1.1 漏洞原因 1.2 漏洞构造方式 1.3 XML可解析的协议 0x02 寻找XXE漏洞隐藏的攻击面 2.1 XInclude攻击 2.2 通过文件上传 ...
- XXE(XML外部实体注入)漏洞
如果你的应用是通过用户上传处理XML文件或POST请求(例如将SAML用于单点登录服务甚至是RSS)的,那么你很有可能会受到XXE的攻击.XXE是一种非常常见的漏洞类型,我们几乎每天都会碰到它 什么是 ...
- XXE(XML外部实体注入)详解
1. XXE漏洞描述 XXE(XML External Entity Injection)又称为"XML外部实体注入漏洞". 当允许引用外部实体时,通过构造恶意内容,就可能导致任意 ...
- XXE外部实体注入漏洞总结
Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...
- Web Hacking 101 中文版 十四、XML 外部实体注入(一)
十四.XML 外部实体注入 作者:Peter Yaworski 译者:飞龙 协议:CC BY-NC-SA 4.0 XML 外部实体(XXE)漏洞涉及利用应用解析 XML 输入的方式,更具体来说,应用程 ...
最新文章
- 企业网络推广浅析网站首页什么样的布局有利于优化?
- STM32 基础系列教程 25 - USB_HID_mouse
- 基于Struts2的供求信息网设计(二)
- 探访火车票“守护者”:一卷票据值百万 压力大到失眠
- 回溯算法-02遍历所有组合方式问题
- 怪咖发明家,乔布斯给了他四亿,他没要,转身靠发明救了10亿人。
- java textfield赋值_Java中怎么把运行结果显示到textfield中
- python消息中间件activemq_消息中间件ActiveMQ和JMS基础
- Pictures Test
- Swoole 源码安装
- 从零基础入门Tensorflow2.0 ----五、22TF1.0计算图构建
- AWS环境搭建(六):Linux上部署wowza,并配置ssl证书
- 540s inter 固件_Intel SSD Firmware Update Tool(英特尔ssd固件更新工具)下载 v2.1.6官方版...
- C盘空间不足,清理AppData
- 【2020总结】脚踏实地,仰望星空
- hadoop tyarn冲突_hadoop集群启动yarn时出现的问题和解决方法
- 全国计算机等级考试 和ccf,【我与CCF】我与CCF的不解之缘
- 客户体验和营销:您需要了解的 5 个最佳实践
- (二)使用Keadm进行部署KubeEdge
- 中华成语宝典 xp v1.0.2 下载