漏洞标题 PHPYUN任意文件上传导致GETSHELL 相关厂商 php云人才系统 漏洞作者 pang0lin 提交时间 2016-03-31 15:20 公开时间 2016-06-29 15:40 …
漏洞标题
PHPYUN任意文件上传导致GETCHELL
相关制造商
Php云人才系统
漏洞作者
Pang0lin
提交时间
2016-03-31 15: 20
公共时间
2016-06-29 15: 40
漏洞类型
文件上载会导致任意代码执行
危险等级
高
自我评估等级
20
漏洞状态
制造商已确认
标签标签
任何文件上传,文件上传安全性
漏洞详细信息
1.在审计PHPYUN时,PHPYUN的WAF非常无语,但当每个人都在寻找SQL注入漏洞时,它真的忽略了一个非常简单的上传漏洞。首先找到漏洞文件wap/member/model/index.class.php
功能photo_action(){
如果($ _ POST [ '提交']){
Preg_match('/^(数据: \ s *图像\ /(\ w +); base64,)/',$ _POST ['uimage'],$ result);
$ uimage=str_replace($ result [1],'',str_replace('#','+',$ _ POST ['uimage']));
$ new_file=time()。'。'。$ result [2];
如果(!file_exists(DATA_PATH.'upload/user /'。date('Ymd')。'/')){
MKDIR(DATA_PATH.'upload /用户/YMD/'”日期( '')。');
CHMOD(DATA_PATH.'upload /用户/”。日期( 'YMD')。 '/',0777);
}
$ re=file_put_contents(DATA_PATH.'upload/user /'。date('Ymd')。'/'。$ new_file,base64_decode($ uimage));
CHMOD(DATA_PATH.'upload /用户/”日期( 'YMD/'$ NEW_FILE,0777')。');
如果($重){
$用户=$这 - > obj-> DB_select_once( '恢复', '`uid`=' '$这 - > UID ''', '`photo`,`resume_photo`');
如果($用户[ '照片'] || $用户[ 'resume_photo']){
Unlink_pic(APP_PATH $用户[ '照片'。);
Unlink_pic(APP_PATH $用户[ 'resume_photo']);
}
$照片='/数据/上传/用户/。' 日期( 'YMD') '/' $ NEW_FILE。
$这 - > obj->DB_update_all( '恢复', '`resume_photo`=' '$照片 '',`photo`='' $相片 ''', '`uid`='” 。$这 - > UID ''');
$这 - > obj-> DB_update_all( 'resume_expect', '`photo`=' '$相片 ''', '`uid`='。 '$这 - > UID ''');
回声1;死;
}其他{
Unlink_pic( './数据/上传/用户/' 日期( 'YMD') '/' $ NEW_FILE。);
回声2;死;
}
} else {
$用户=$这 - > obj-> DB_select_once( '恢复', '`uid`=' '$这 - > UID ''', '`photo`');
如果($用户[ '照片']==''){
$用户[ '相片']='/' $这 - >配置[ 'sy_member_icon'];
}
$这 - > yunset( '用户',$用户);
这 - $> waptpl( '照片');
}
}
2.这里的file_put_contents接收两个参数,两个都来自$ _POST ['uimage'],并且在base64_decode的反编码之后,你可以忽略WAF。首先注册一个普通用户,填写一个简历,然后构造一个有效负载,比如测试代码,你可以在我们的根目录下生成一个php字webhell。
官方网站没有找到演示,第一个案例在官方网站http://**。**。**。** /(电商网)演示漏洞
参考测试代码,构造有效负载,你认为最后一个时间戳会被爆破,完全没有,使用burp捕获包(不能直接访问,除非你使用的是手机,因为UA头是在这里验证,计算机将是重型方向,但后面的代码仍然可以执行),访问http://**。**。**。**/wap/member/index.php?c=photo& m=index(你可以在这里发布任何数据,你可以直接看到当前的头像,它有我们的webshell。)

http://**。**。**。**/data/upload/user/20160330/1459344569.php
3,同样的问题也出现在wap/member/model/com.class.php中。
漏洞证明:

http://**。**。**。**/data/upload/user/20160330/1459344569.php
根据管理员的要求,请提供案例,只通过phpinfo,没问题。
1.http://**。**。**。**/data/upload/user/20160331/1459407471.php
2.http://**。**。**。**/data/upload/user/20160331/1459407615.php
3.http://**。**。**。**/data/upload/user/20160331/1459407983.php
4.http://**。**。**。**/data/upload/user/20160331/1459408176.php
5.http://**。**。**。**/data/upload/user/20160330/1459344569.php
6.http://**。**。**。**/data/upload/user/20160331/1459408409.php
修理计划:
你更专业
版权声明:请注明出处pang0lin @乌云