HACK80

我们很年轻,但我们有信念、有梦想!

我们坚信只有今天付出了,才有机会看到明天的太阳!
现在!加入我们,给你一个气氛优秀的技术圈子

作者: juk小乖
查看: 56|回复: 0

more +随机图赏Gallery

2017年中旬WEB渗透系列课程-26Mysql下UDF提权2017年中旬WEB渗透系列课程-26Mysql下UDF提权
2017年中旬WEB渗透系列课程-25基于php参数开关的提权2017年中旬WEB渗透系列课程-25基于php参数开关的提权
2017年中旬WEB渗透系列课程-24提权分类2017年中旬WEB渗透系列课程-24提权分类
2017年中旬WEB渗透系列课程-23提权认识2017年中旬WEB渗透系列课程-23提权认识
2017年中旬WEB渗透系列课程-22CMS相关2017年中旬WEB渗透系列课程-22CMS相关
2017年中旬WEB渗透系列课程-21webshell免杀相关问题2017年中旬WEB渗透系列课程-21webshell免杀相关问题
2017年中旬WEB渗透系列课程-20关于指令执行2017年中旬WEB渗透系列课程-20关于指令执行
2017年中旬WEB渗透系列课程-19文件包含与目录遍历2017年中旬WEB渗透系列课程-19文件包含与目录遍历
2017年中旬WEB渗透系列课程-18上传绕过方法演示2017年中旬WEB渗透系列课程-18上传绕过方法演示
2017年中旬WEB渗透系列课程-17了解上传检测方式2017年中旬WEB渗透系列课程-17了解上传检测方式

OpenSNS任意文件删除+IIS6.0(getshell)

[复制链接]
juk小乖 发表于 7 天前 | 显示全部楼层 |阅读模式
查看: 56|回复: 0

马上注册,加入HACK80!与我们一起交流。

正式会员需要 登录 才可以下载或查看,没有帐号?立即注册

x
漏洞文件:/Application/Weibo/Controller/IndexController.class.php
  1. public function uploadMyExp(){

  2.         $flag=1;
  3.         $uid=is_login();
  4.         $mycollection='mycollection';

  5.         $config = array(
  6.             'maxSize' => 5*1024*1024,
  7.             'rootPath' => './Uploads/',
  8.             'savePath' => 'Expression/'.$mycollection.'/',
  9.             'saveName' => '',
  10.             'exts' => array('jpg', 'gif','png','jpeg'),
  11.             'autoSub' => true,
  12.             'subName' => '',
  13.             'replace' => true,
  14.         );
  15.         if($_FILES['file']['size']<5*1024||$_FILES['file']['size']> 5*1024*1024){
  16.             echo json_encode('-3');
  17.             $flag=0;
  18.         }
  19.         $upload = new pload($config); // êμày»ˉéÏ′«àà
  20.         $info = $upload->upload($_FILES);
  21.         if (!$info) { // éÏ′«′íÎóìáê¾′íÎóDÅÏ¢
  22.             echo json_encode('-1');
  23.             $flag=0;
  24.         }
复制代码
获取当前登录的uid,然后获取上传的FILES进入upload
1-6-1024x882.png
正常的一个流程
1-7-1024x623.png
这里有一个check检测,跟进
2-1024x212.png
对后缀进行了检测.所以我们得必须满足后面.jpg这个条件
3-1024x275.png
文件名的控制
4-1024x418.png
当saveName为空时则true并截取我们上传的文件名
5-1024x653.png
最后则是检测后缀还有MIME类型,true则进入uplandfie.复现
6-1024x449.png
为了方便我var_dump了出来
7.png
成功上传
任意文件删除:
  1. $name=I('post.name','','op_t');
  2.         $allname=substr($name,strrpos($name,'\')+1,strlen($name)-strrpos($name,'\')-1);
  3.        // $iname=substr($allname,0,strrpos($allname,'.'));
  4.         $rp= $this-> ROOT_PATH = str_replace('/Application/Weibo/Controller/IndexController.class.php', '', str_replace('\', '/', __FILE__));
  5.         $path = $rp."/Uploads/Expression/" ;
  6.         if(!file_exists($path.$mycollection)){
  7.           mkdir($path.$mycollection,0777,true);
  8.         }
  9.         $path0=$rp.'/Uploads/Expression/'.$mycollection.'/'.$allname;
  10.         $file=file_get_contents($path0);
  11.         $map['md5']=md5($file);
  12.        $iexp_id=$iexpression->where($map)->getField('id');
  13.         if($iexp_id){
  14.             $map1['iexpression_id']=$iexp_id;
  15.             $map1['uid']=$uid;
  16.             $res=$iexplog->where($map1)->select();
  17.             if($res){
  18.                 echo json_encode('0');
  19.                 $iexp_path=$iexpression->where($map)->getField('path');
  20.                 if($iexp_path!="/Uploads/Expression/".$mycollection.'/'.$allname)
  21.                 {
  22.                     unlink($path0);
  23.                 }
复制代码
Post获取name并进入了op_t函数
1-8.png
可以看见这是针对安全过滤,并没有针对路径跳转过滤
2-1-1024x81.png
然后进行截取,很简单的就可以绕过的一种截取
3-1-1024x239.png
这里就很狗血的一段了!进入数据库查询当查询出来的内容与我们输入的内容不符合的时候则删除不符合内容
本机先新建一个文件
4-1-1024x460.png
这里去请求
5-1.png
6-1-1024x518.png

正式会员需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|HACK80 ( 沪ICP备15007512号 )

GMT+8, 2017-10-19 15:08 , Processed in 0.071054 second(s), 30 queries .

Powered by Discuz! X3.2 © 2001-2013 Comsenz Inc.