phpdisk sql注入 无视防御

技术 作者:HackerEye 2018-08-24 09:40:55
  1. 发布时间:2014-06-03
  2. 公开时间:2014-09-01
  3. 漏洞类型:sql注射
  4. 危害等级:高
  5. 漏洞编号:WooYun-2014-63189
  6. 测试版本:20140529

简要描述

我发的好像都是无视防御的。。这个也是,输入点的问题 绕过全局过滤

详细说明

ajax.php行75
case 'uploadCloud':
  $folder_id = (int)gpc('folder_id','P',0);
  $folder_id = $folder_id ? $folder_id : -1;
  $data = trim(gpc('data','P',''));
  …………省略部分代码…………
  if($data){
    $file_key = random(8);
    if(strpos($data,',')!==false){
      $add_sql = $msg = '';
      $arr = explode(',',$data);
      for($i=0;$i<count($arr)-1;$i++){
        $file = unserialize(base64_decode($arr[$i])); //base64_decode 无视防御
        $file[file_id] = (int)$file[file_id];       //file_id 检查了
        $file[file_size] = (int)$file[file_size];   //file_size检查了
      $file[file_extension] = $db->escape(trim($file[file_extension])); //file_extension检查了
      $file[file_name] = $db->escape(trim($file[file_name]));           //file_name检查了
      …………省略部分代码…………
      //这里的$file[file_description]没过滤!
      $add_sql .= "({$file[file_id]},'{$file[file_name]}','$file_key','{$file[file_extension]}','application/octet-stream','{$file[file_description]}','{$file[file_size]}','$timestamp','$is_checked','$in_share','$report_status','$pd_uid','$folder_id','$onlineip'),";
      …………省略部分代码…………
      //进查询了
      $db->query_unbuffered("insert into {$tpf}files(yun_fid,file_name,file_key,file_extension,file_mime,file_description,file_size,file_time,is_checked,in_share,report_status,userid,folder_id,ip) values $add_sql ;");

漏洞证明

先注册一个账号 然后去“我的网盘”新建一个文件夹 记住这个folder_id ! 生成payload 提交请求folder_id=刚才记住的id&data=刚才生成的payload 查看网盘中的文件就能看到注入结果了

修复方案

别漏了 作者:索马里的乌贼 链接:https://www.jianshu.com/p/35f483b697dd

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接