### 简要描述: 我发的好像都是无视防御的。。这个也是,输入点的问题 绕过全局过滤 ### 详细说明: 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 .=...
### 简要描述: 我发的好像都是无视防御的。。这个也是,输入点的问题 绕过全局过滤 ### 详细说明: 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 ;"); ``` ### 漏洞证明: 1、先注册一个账号 然后去“我的网盘”新建一个文件夹 记住这个folder_id [<img src="https://images.seebug.org/upload/201406/0202145381d84487e1e2992eee100f6f91c2ea1c.jpg" alt="123.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201406/0202145381d84487e1e2992eee100f6f91c2ea1c.jpg) 2、生成payload [<img src="https://images.seebug.org/upload/201406/0202162462770113f9139af0266b49cb63e5a8e5.jpg" alt="23.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201406/0202162462770113f9139af0266b49cb63e5a8e5.jpg) 3、提交请求folder_id=刚才记住的id&data=刚才生成的payload [<img src="https://images.seebug.org/upload/201406/02021735de185c28713f6f1c45e9aa33ba98a443.jpg" alt="34.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201406/02021735de185c28713f6f1c45e9aa33ba98a443.jpg) 4、查看网盘中的文件就能看到注入结果了 [<img src="https://images.seebug.org/upload/201406/02021841c5379bf6a46f676ac2cfb79147d01e68.jpg" alt="45.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201406/02021841c5379bf6a46f676ac2cfb79147d01e68.jpg)