【攻防演练】某协同办公系统多个1day分析过程
2022-12-23 23:4:40 Author: 白帽子程序员(查看原文) 阅读量:28 收藏

目录0x01 任意文件上传1.1 代码分析1.2 漏洞利用0x02 全回显SSRFRCE2.1 漏洞分析2.2 漏洞利用2.3 类似的接口还有0x03 回显SSRF3.1 漏洞分析3.2 漏洞利用

1.1 代码分析

漏洞出现在E-mobile/App/Ajax/ajax.php文件中,是后缀过滤被绕过导致的。

业务逻辑如下:

(1)$photo = $_FILES["upload_quwan"]; 将上传文件赋值给$photo

(2)$ext_temp = path_info($photo["name"]); 获取上传文件后缀

(3) 后缀合法性校验(漏洞核心位置)

校验过程存在缺陷,只校验了上传文件后缀有没有在黑名单,却未考虑后缀为空的情况,比如123.php.,此时取到的后缀为空,不在黑名单。

(4) 拼接路径,完成上传。

1.2 漏洞利用

action=mobile_upload_save直接上传即可

2.1 漏洞分析

还是这个文件,继续分析action为其他的分支,在action=dingtalkImg时,存在该漏洞,我们看下实现过程:

(1) 获取一个result参数,然后传入GrabImage函数进行远程文件抓取操作。

(2) 跟进GrabImage,该函数做了几点操作:

  • 从url中获取文件名

  • 打开url读取图片流

  • 打开文件,写入图片流

全程一气呵成,没有做任何文件后缀校验。

所以,该处既存在全回显SSRF,同样文件保存在服务器,可以造成RCE

2.2 漏洞利用

服务器上启一个web服务,将代码放进去:

然后构造URL进行请求:

2.3 类似的接口还有

action=outSignImg

3.1 漏洞分析

/E-mobile/App/System/File/downfile.php

(1)赋值过程(11-18行)

$fileurl      = $_REQUEST["url"];
// ....
$rooturl = "http://".$_SERVER['HTTP_HOST'];
$checkurl = explode("/", $fileurl);

$checkurl中包含某些特定字符时,则拼接指定的URL:

(2)拼接完整URL,不满足上述两种特定流程时。

else 
{
$url = $rooturl.$fileurl;// 将HOST和url参数值拼接
$filetype = pathinfo($fileurl); // 获取文件后缀
$type = $filetype["extension"]; // 将type设置为文件后缀
}

(3)$url传入file_get_content造成SSRF

3.2 漏洞利用

End

关注公众号【白帽子程序员】

回复“电子书”获取网络安全电子书资料

回复视频教程获取400网络渗透教学、编程视频教程

回复CTF视频教程获取400网络渗透教学、编程视频教程

回复python视频教程获取python学习教程

回复hw获取护网资料

回复内网靶场获取内网靶场

回复渗透镜像

学习资料截图

往期推荐

我为什么开通公众号?IT人到中年最怕的就是你只有一门技术

个人总结网络安全学习路线(文末电子书、教学视频400G获取)

黑客是怎么入侵一个网站的?(微信交流群、资料共享)

FOFA可以访问了!我的自留地-【白帽子程序员】公众号开通了


文章来源: http://mp.weixin.qq.com/s?__biz=Mzg3Mjc0MDQ2Nw==&mid=2247490332&idx=1&sn=cf3100547ab61251e8f43cbcbaf3a895&chksm=ceebf800f99c7116cf2ad2717e9aec2971b0abcad7c6c6bfa3bb75b1aa484748bbaf68fd934c#rd
如有侵权请联系:admin#unsafe.sh