WooYun-2014-65837:qibocms 黄页系统SQL注入一枚
漏洞作者: ′雨。
来源:http://www.wooyun.org/bugs/wooyun-2014-065837
简要描述
过滤不严。
详细说明
http://**.**.**.**/down2.php?v=hy1.0#down
这里下载地址 刚下载的。
在hy/choose_pic.php中
if($action=='upload'){
if(is_uploaded_file($_FILES[postfile][tmp_name])){
$array[name]=is_array($postfile)?$_FILES[postfile][name]:$postfile_name;
$title=$title?$title:$array[name];
$myname_str=explode(".",strtolower($array[name]));
$myname=$myname_str[(count($myname_str)-1)];
if(!in_array($myname,array('gif','jpg'))) $msg="{$array[name]}图片只能是gif或者jpg的格式";
$array[path]="$webdb[updir]/homepage/pic/".ceil($lfjuid/1000)."/$lfjuid"; //商家图片另存
$array[size]=is_array($postfile)?$_FILES[postfile][size]:$postfile_size;
$webdb[company_uploadsize_max]=$webdb[company_uploadsize_max]?$webdb[company_uploadsize_max]:100;
//if($array[size]>$webdb[company_uploadsize_max]*1024) $msg="{$array[name]}图片超过最大{$webdb[company_uploadsize_max]}K限制";
if($msg==''){
$picurl=upfile(is_array($postfile)?$_FILES[postfile][tmp_name]:$postfile,$array);
if($picurl){
$Newpicpath=ROOT_PATH."$array[path]/{$picurl}.gif";
gdpic(ROOT_PATH."$array[path]/$picurl",$Newpicpath,120,120);
if(!file_exists($Newpicpath)){
copy(ROOT_PATH."$array[path]/{$picurl}",$Newpicpath);
}
//$msg="{$array[name]}上传成功";
$picurl="homepage/pic/".ceil($lfjuid/1000)."/$lfjuid/$picurl";
$title=get_word($title,32);
$db->query("INSERT INTO `{$_pre}pic` ( `pid` , `psid` , `uid` , `username` , `title` , `url` , `level` , `yz` , `posttime` , `isfm` , `orderlist` ) VALUES ('', '$psid', '$lfjuid', '$lfjid', '$title', '$picurl', '0', '{$webdb[auto_userpostpic]}', '$timestamp', '0', '0');");
可以看到$title=get_word($title,32); 看看title哪里来的
$title=$title?$title:$array[name]; 如果没定义$title的话就是直接用上传时候文件的名字做的 $_FILES的 然后就无视转义了。
然后就带入到了insert当中。
漏洞证明
报错了 构造一下语句。
这里限制了后缀必须为jpg之类的 所以在文件名的后面还是需要加一个这个。
直接查看源码得到数据。