问答
发起
提问
文章
攻防
活动
Toggle navigation
首页
(current)
问答
商城
实战攻防技术
漏洞分析与复现
NEW
活动
摸鱼办
搜索
登录
注册
【攻防演练】某协同办公系统多个1day分析过程
漏洞分析
【攻防演练】某协同办公系统多个1day分析过程,涉及两个回显SSRF、一个文件上传。
0x01 任意文件上传 =========== 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`直接上传即可   0x02 全回显SSRF可RCE ================ 2.1 漏洞分析 -------- 还是这个文件,继续分析`action`为其他的分支,在`action=dingtalkImg`时,存在该漏洞,我们看下实现过程: (1) 获取一个result参数,然后传入`GrabImage`函数进行远程文件抓取操作。  (2) 跟进`GrabImage`,该函数做了几点操作: - 从url中获取文件名 - 打开url读取图片流 - 打开文件,写入图片流 全程一气呵成,没有做任何文件后缀校验。  所以,该处既存在全回显SSRF,同样文件保存在服务器,可以造成RCE 2.2 漏洞利用 -------- 服务器上启一个web服务,将代码放进去:  然后构造URL进行请求:   2.3 类似的接口还有 ----------- `action=outSignImg`时  0x03 回显SSRF =========== 3.1 漏洞分析 -------- 在`/E-mobile/App/System/File/downfile.php`中 (1)赋值过程(11-18行) ```php $fileurl = $_REQUEST["url"]; // .... $rooturl = "http://".$_SERVER['HTTP_HOST']; $checkurl = explode("/", $fileurl); ``` 当`$checkurl`中包含某些特定字符时,则拼接指定的URL:  (2)拼接完整URL,不满足上述两种特定流程时。 ```php else { $url = $rooturl.$fileurl;// 将HOST和url参数值拼接 $filetype = pathinfo($fileurl); // 获取文件后缀 $type = $filetype["extension"]; // 将type设置为文件后缀 } ``` (3)`$url`传入`file_get_content`造成SSRF  3.2 漏洞利用 -------- - 利用方法1:`url=@butian.net` - 利用方法2:请求包HOST设置为`butian.net` 
发表于 2022-09-02 10:15:37
阅读 ( 10553 )
分类:
漏洞分析
3 推荐
收藏
4 条评论
齐向西
2022-09-05 17:23
最后这个host不是漏洞吧
Alivin
回复
齐向西
是漏洞
请先
登录
后评论
whyubullyme
2022-11-04 10:05
师傅,第一个用空后缀.号绕过的,Linux机器是不是不行
Alivin
回复
whyubullyme
对的,这是windows特性导致的,linux下无效。
请先
登录
后评论
请先
登录
后评论
Alivin
13 篇文章
×
发送私信
请先
登录
后发送私信
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!