网站地图    收藏   

主页 > 后端 > 网站安全 >

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

来源:自学PHP网    时间:2015-04-17 13:03 作者: 阅读:

[导读] by:风之传说今天分析了两个程序,都发了吧。好吧,我承认有点鸡肋。。我们先来看看这个文件/common.function.php01functionwrite_file($l1,$l2=#39;#39;){ //写文件02 $dir= dirname($l1);03 if(!is_dir($......

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的一种方法。

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

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论