PHPYUN任意文件上传导致GETSHELL

漏洞标题 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 @乌云