目录
0x01 任意文件上传
1.1 代码分析
1.2 漏洞利用
0x02 全回显SSRF可RCE
2.1 漏洞分析
2.2 漏洞利用
2.3 类似的接口还有
0x03 回显SSRF
3.1 漏洞分析
3.2 漏洞利用
漏洞出现在E-mobile/App/Ajax/ajax.php
文件中,是后缀过滤被绕过导致的。
业务逻辑如下:
(1)$photo = $_FILES["upload_quwan"];
将上传文件赋值给$photo
,
(2)$ext_temp = path_info($photo["name"]);
获取上传文件后缀
(3) 后缀合法性校验(漏洞核心位置)
校验过程存在缺陷,只校验了上传文件后缀有没有在黑名单,却未考虑后缀为空的情况,比如123.php.
,此时取到的后缀为空,不在黑名单。
(4) 拼接路径,完成上传。
action=mobile_upload_save
直接上传即可
还是这个文件,继续分析action
为其他的分支,在action=dingtalkImg
时,存在该漏洞,我们看下实现过程:
(1) 获取一个result参数,然后传入GrabImage
函数进行远程文件抓取操作。
(2) 跟进GrabImage
,该函数做了几点操作:
从url中获取文件名
打开url读取图片流
打开文件,写入图片流
全程一气呵成,没有做任何文件后缀校验。
所以,该处既存在全回显SSRF,同样文件保存在服务器,可以造成RCE
服务器上启一个web服务,将代码放进去:
然后构造URL进行请求:
action=outSignImg
时
在/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
利用方法1:[email protected]
利用方法2:请求包HOST设置为butian.net
End
关注公众号【白帽子程序员】
回复“电子书”获取网络安全电子书资料
回复“视频教程”获取400网络渗透教学、编程视频教程
回复CTF视频教程”获取400网络渗透教学、编程视频教程
回复python视频教程”获取python学习教程
回复hw”获取护网资料
回复内网靶场”获取内网靶场
回复渗透镜像”
学习资料截图
往期推荐
我为什么开通公众号?IT人到中年最怕的就是你只有一门技术
个人总结网络安全学习路线(文末电子书、教学视频400G获取)
黑客是怎么入侵一个网站的?(微信交流群、资料共享)