首页 > 入侵渗透, 我的作品, 胡说胡写, 脚本相关 > 对于PHP的网站入侵思路

对于PHP的网站入侵思路

文章太菜,牛人请绕道。

作者:SpookZanG[S.c.T]

前几天,某个叫情深的MM给我发消息,让我帮他弄个站。漂亮MM发话而且他又答应跟我去开房,这必然得弄下来啊~。

于是拿到某个PHP的网站。

点击查看图片

我是一个“很勤奋”的人,所以我的格言是:能工具的就绝不手工。手工太累。所以把它扔到可爱的穿山甲里面,发现穿山甲竟然检测其为MSSQL,跟实际不相符啊~。(也有PHP与MSSQL搭配的,以前见过,不过今天不是。)这命名就是MYSQL数据库啊。

(顺便说下怎么判断是MYSQL还是MSSQL,比如他的连接是http://www.spookzang.net/index.php?id=1,你在他后面加上/*SpookZanG或者–SpookZanG,看哪个能正常显示,前者正常显示就为MYSQL  后者正常显示就为MSSQL)

这时,情MM发来信息说找到了表,但是找不到列。而且能读出文件来。

点击查看图片

既然能读文件,我们就来读取一下可能包含数据库帐号密码的文件。一般登录文件都会调用包含数据库帐号密码的文件。
我先读了login_act.php

<!--p
session_start();
 
Header("Content-type: text/html; charset=GB2312");
 
require "title.php";
 
$mod = $_REQUEST['mod'];
 
$mod=empty($mod)?'out':$mod;
 
  switch($mod){
 
  case 'out':
 
    $RegUse-->Logout();
 
  break;
 
  case 'in':
 
    $env=" and publish='1'";
 
    $RegUser-&gt;setUserEnv($env);
 
    $RegUser-&gt;Login($_POST['usr'],$_POST['pwd']);
 
  break;
 
}
?&gt;

发现里面包含了title.php。并发现$RegUser含有uer和pwd。我们在来读title.php

<!--define('__SYSTEM_ROOT', '../');
 
include __SYSTEM_ROOT.'framework_gb/framework.php';
using('System.Web.UI.Handle');
using('System.Web.UI.Handle_new');
using('System.Web.UI.Toolbar');
using('System.Data.Data');
using('System.Data.Plugins.Option');
using('System.Smarty.Smarty');
using('System.Functions.Functions');
 
require_once __SYSTEM_ROOT."global.php";
using('System.User.User');
 
$RegUser=new User($_globa-->table-&gt;user,'content_name','content_pass');
 
$Sarray=array('userid'=&gt;'auto_id',
            'user_name'=&gt;'content_name',
            'role_id'=&gt;'role_id',
            );
 
$RegUser-&gt;setSessArray($Sarray);
 
?&gt;

这时,我们就知道了他的列名了,分别为’content_name’和’content_pass’。而且他里面还有global.php这个文件。

我来读一下这个文件global.php

<!--p
 
@session_start();
/*
* Created on 2005-11-27
*
* To change the template for this generated file go to
* Window - Preferences - PHPeclipse - PHP - Code Templates
*/
define('_ACCESS_VALID', 1);
 
/**
* 打开所有错误选项
*/
 
/*
ini_set('display_errors', 1);
error_reporting(E_ALL ^E_NOTICE);
*/
/**
* 系统绝对路径
*/
if (!defined('SYSTEM_ROOT'))
define('SYSTEM_ROOT', dirname(__FILE__));
 
if (!defined('TMP_ROOT'))
define('TMP_ROOT', SYSTEM_ROOT.DIRECTORY_SEPARATOR.'tmp'.DIRECTORY_SEPARATOR);
 
/**
* 系统相对路径
*/
if (!defined('__SYSTEM_ROOT'))
define('__SYSTEM_ROOT', '');
 
if(!defined('SYSTEM_UPLOADS_DIR'))
define('SYSTEM_UPLOADS_DIR',SYSTEM_ROOT.'/file/upload/');
define('_SYSTEM_UPLOADS_DIR',__SYSTEM_ROOT.'/file/upload/');
 
define('_NOIMG',SYSTEM_ROOT.'/images/nophoto.gif');
define('CODE_DIR',SYSTEM_ROOT.'/code/');
 
/**
* 定义时间常量
* @final LONG_DATE
* @final SHORT_DATE
* @final SERVER_TIME
*/
define('LONG_DATE', date('Y-m-d H:i:s'));
define('SHORT_DATE', date('Y-m-d'));
define('SERVER_TIME', date('H:i:s'));
 
/**
* 常用服务器配置常?Y
* @final ENV_MAGIC_QUOTES_GPC
* @final ENV_OUTPUT_BUFFERING
* @final ENV_REGISTER_GLOBALS
* @final ENV_SESSION_LIFETIME
* @final ENV_UPLOAD_MAX_FILESIZE
*/
define('ENV_MAGIC_QUOTES_GPC', (int) ini_get('magic_quotes_gpc'));
define('ENV_OUTPUT_BUFFERING', (int) ini_get('output_buffering'));
define('ENV_REGISTER_GLOBALS', (int) ini_get('register_globals'));
define('ENV_SESSION_LIFETIME', (int) ini_get('session.cookie_lifetime'));
define('ENV_UPLOAD_MAX_FILESIZE', (int) ini_get('upload_max_filesize'));
 
/**
* 系统常用路径常量
* @final SYSTEM_UPLOADS_DIR
*/
 
include SYSTEM_ROOT.DIRECTORY_SEPARATOR.'config.php';
include SYSTEM_ROOT.DIRECTORY_SEPARATOR.'vars.php';
 
//模板
$smarty = new Smarty();
$smart-->template_dir = $SmartyCfg['TEMPLATE_DIR'];
$smarty-&gt;compile_dir = $SmartyCfg['COMPILE_DIR'];
$smarty-&gt;config_dir = $SmartyCfg['CONFIGS_DIR'];
$smarty-&gt;cache_dir = $SmartyCfg['CACHE_DIR'];
$smarty-&gt;left_delimiter = $SmartyCfg['LEFT_DELIMITER'];
$smarty-&gt;right_delimiter = $SmartyCfg['RIGHT_DELIMITER'];
$smarty-&gt;caching = false;
$smarty-&gt;compile_check = true;
$smarty-&gt;debugging = false;
 
$_tpl = new StdClass();
 
$_tpl-&gt;site="site/";
$_tpl-&gt;lib=$_tpl-&gt;site."lib/";
 
$_tpl-&gt;header=$_tpl-&gt;site."lib/header.htm";
$_tpl-&gt;footer=$_tpl-&gt;site."lib/footer.htm";
 
define('NEWIMG',$config-&gt;LiveSite.'/images/05062003011.gif');
 
define('NEWDATE',3);
 
//数据
 
$Data = new Data();
$Data-&gt;Open($DBType,$DBCfg);
$Data_Sec = new Data();
$Data_Sec-&gt;Open($DBType,$DBCfg);
 
$_global = new StdClass();
 
$_global-&gt;table = new StdClass();
 
/**
*
* 取得框架相对路径
*/
$_global-&gt;framework_path = new StdClass();
$_global-&gt;framework_path-&gt;System = getPath('System');
$_global-&gt;framework_path-&gt;FCKeditor = getPath('System.Web.UI.FCKeditor');
$_global-&gt;framework_path-&gt;Htmledit = getPath('System.Web.UI.Htmledit');
$_global-&gt;framework_path-&gt;Upload = getPath('System.Upload');
$_global-&gt;framework_path-&gt;Dtree = getPath('System.Web.UI.Dtree');
$smarty-&gt;assign('framework_path',$_global-&gt;framework_path);
 
$_global-&gt;table-&gt;admin_role = 'sys_role';
$_global-&gt;table-&gt;module = 'sys_module';
$_global-&gt;table-&gt;defmodule = 'sys_plugin';
 
$_global-&gt;table-&gt;user = 'sys_user';
$_global-&gt;table-&gt;news_content = 'news';
$_global-&gt;table-&gt;news_class='sys_module';
$_global-&gt;table-&gt;news_info='news';
$_global-&gt;table-&gt;article_content = 'article';
$_global-&gt;table-&gt;share_price = 'share_price';
$_global-&gt;table-&gt;pdf_content = 'pdf';
$_global-&gt;table-&gt;video_content = 'video';
$_global-&gt;table-&gt;person_content = 'person';
$_global-&gt;table-&gt;guest_content = 'guest';
$_global-&gt;table-&gt;vars="vars";
 
$_global-&gt;table-&gt;productmodule = 'productmodule';
$_global-&gt;table-&gt;product = 'product';
$_global-&gt;table-&gt;zhaopin = 'zhaopin';
$_global-&gt;table-&gt;vote = 'vote';
$_global-&gt;table-&gt;friendlink='friendlink';
$_global-&gt;table-&gt;focusimg='focusimg';
$_global-&gt;table-&gt;database_back="database_back";
$_global-&gt;table-&gt;mailadmin='mailadmin';
$_global-&gt;table-&gt;mailshow='sendmail_list';
 
$_global-&gt;table-&gt;guest_touch='guest_touch';
 
$_global-&gt;table-&gt;member='member';
$_global-&gt;table-&gt;cent='cent';
$_global-&gt;table-&gt;video='video';
 
$_global-&gt;form-&gt;dateimg = "../tpl/images/toolbar/html_f2.png";
$_global-&gt;form-&gt;noimg = "../tpl/images/toolbar/html_f2.png";
 
if(ENV_OUTPUT_BUFFERING&gt;0){
  ob_end_clean();
}
?&gt;

其中的include SYSTEM_ROOT.DIRECTORY_SEPARATOR.’config.php’;

他的ROOT密码 没准就在那里。

最后读出了ROOT密码和网页的管理员帐号。

不过,帐号登录不了。(administrator这个权限高的没法登录,权限低的却一点问题没有,真实匪夷所思……)

而且处于内网当中,所以root也是没有办法在外网登录。

本文只是介绍一下入侵这个网站的思路。如有错的地方,欢迎指出讨论。(特别是那个帐号无法登录的问题)

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.