爱频道音乐管理系统多处漏洞总结

  • A+
所属分类:颓废's Blog
摘要

 首先大致看了下对get和post数据的处理,发现基本都被一个SafeRequest函数进行处理,我们跟踪一下这个函数 

爱频道音乐管理系统多处漏洞总结

 首先大致看了下对get和post数据的处理,发现基本都被一个SafeRequest函数进行处理,我们跟踪一下这个函数 

function SafeRequest($key,$mode,$isfilter=''){  set_magic_quotes_runtime(0);  $magic= get_magic_quotes_gpc();   switch ($mode){   case 'post':    $value=isset($_POST[$key]) ? $magic?trim($_POST[$key]):addslashes(trim(    $_POST[$key])) : '';    break;   case 'posts':    $value=isset($_POST[$key]) ? $magic?trim($_POST[$key]):addslashes(trim(    $_POST[$key])) : '';    $value=shtmlspecialchars($value);    break;   case 'get':    $value=isset($_GET[$key]) ? $magic?trim($_GET[$key]):addslashes(trim(    $_GET[$key])) : '';    break;   case 'gets':    $value=isset($_GET[$key]) ? $magic?trim($_GET[$key]):addslashes(trim(    $_GET[$key])) : '';    $value=shtmlspecialchars($value);    break;   default:    $value=isset($_POST[$key]) ? $magic?trim($_POST[$key]):addslashes(trim(    $_POST[$key])) : '';    if($value==""){     $value=isset($_GET[$key]) ? $magic?trim($_GET[$key]):addslashes(trim(     $_GET[$key])) : '';    }    break;  }  if($isfilter!=''){   $value=str_encode($value);  }  return $value;  }

  其中,str_encode是XSS的过滤函数(可以猜想这个程序员想一个函数用在整个系统里了)

function str_encode($str) {  $str=ReplaceStr($str, "<", "&lt;");  $str=ReplaceStr($str, ">", "&gt;");  $str=ReplaceStr($str, "'", "&apos;");  $str=ReplaceStr($str, " ", "&nbsp;");  $str=ReplaceStr($str, "/r/n", "<br>");  $str=ReplaceStr($str, "/"", "&quot;");  $str=ReplaceStr($str, "&", "&amp;");  return $str; }

  可以看到,这个系统对于被引号包裹的sql语句有着一定的抵抗能力,然而如果是数字型的,缺完全没有抵抗能力,有了这个思路,我们就可以搜索所有数字型的注入点了。

爱频道音乐管理系统多处漏洞总结

  使用这个函数的共有2358处,带有**id我们就可以猜测是数字型的了。比如

爱频道音乐管理系统多处漏洞总结

  isNul函数

function IsNul($str) {  if(!is_string($str))   return false;  if(empty($str))   return false;  if($str=='')   return false;  return true; }

 之后就直接带入sql语句了,结果想必大家都应该知道了......

 但在审计的过程中,我又发现了一处cookie注入,这个就是根本没有过滤

if(($_COOKIE["cd_name"]<>"") || ($_COOKIE["cd_password"]<>"")) {   $userid=$_COOKIE["cd_id"];  $username=$_COOKIE["cd_name"];  $password=$_COOKIE["cd_password"];    global $db;  $cd_ids=$db->getrow("select cd_id,cd_logintime from " . tname('session') . " where   cd_uid =$userid and cd_uname='$username'");

可以盲注

爱频道音乐管理系统多处漏洞总结

原文:www.wupco.cn/?p=68

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: