香港虚拟主机
本站公告
新闻资讯
虚拟主机帮助
域名帮助
服务器帮助
邮箱帮助
建站帮助
网站推广帮助
VPS帮助
特色主机帮助
网站备案专题
会员帮助信息
代理帮助信息
成功案例
我司获香港虚拟主机排行榜十…
香港虚拟主机金秋促销活动正…
百度整治给SEO带来了新的希望
百度同时收录网站带WWW和不带…
百度对原创内容的判断标准 如…
如何建设网站 网站建设三步曲
如何挑选老域名 老域名有那些…
域名常见故障与分析
虚拟主机基本参数介绍
交换链接的技巧 谈一下选择交…
您现在的位置: 江南数联 >> 帮助中心 >> 会员帮助 >> 正文

实战php网站漏洞挖掘步骤,PHP web挖掘漏洞

  作者:未知    来源:本站原创    点击次数:29     更新时间:2012-9-7 7:10:12  
     
 
关注石头有礼
 
 

实战php网站漏洞挖掘步骤,PHP web挖掘漏洞

研究一套cms 3天了,自己没挖到什么可以直接利用的漏洞,都是一些比较鸡肋的,可能是自己的水平太菜了。不过我把整个挖洞过程中记录下来,供大家参考。如果有什么不对的,或者是有什么好的建议的,请加QQ群62512676 一起来讨论学习
0x1

这套cms我是从站长网,随便下的,所以下下来就搭建起来看代码了,

 

这是最新版本的,我也不知道有没有前辈挖过,所以就开始动工了。

首先开始从首页开始读代码,

 

将其中的几个包含文件打开,依次打开包含文件里面另外包含的地方

首先他定义的是一些常量,所以这些不用管 ,接下来就是包含了, 第一个包含了 common.inc.php

我们看看common.inc.php吧

其他不重要的代码我就略过了,我就分析一下重点的代码位置

d

看到这里的foreach循环没? 这里就存在一个变量覆盖的问题,变量覆盖的话,www.zs50.com如果能利用的话,是很有用的,说不定就直接getshell呢?

所以这里的代码等得仔细研究研究。。。

接下来还是一些文件

/引入配置文件

require_once(WEB_INC.'/config.inc.php');

//引入数据库类

require_once(WEB_INC.'/db.class.php');

//常用函数

require_once(WEB_INC.'/function.inc.php');

//基础model函数

require_once(WEB_INC.'/model.class.php');

/*Session保存路径

$sessionPath = WEB_ROOT."/data/session";

if(is_writeable($sessionPath) && is_readable($sessionPath))

{

session_save_path($sessionPath);

}

*/

//session language

session_start();

header("Content-type: text/html; charset=utf-8");

//确认正确安装然后连接数据库

$install_check = '';

/*

echo $db_type.'<br/>';

echo $host.'<br/>';

echo $name.'<br/>';

echo $pass.'<br/>';

echo $table.'<br/>';

echo $ut.'<br/>';

*/

if(file_exists(WEB_DATA.'install.lock')) {

$db=new DB($db_type,$host,$name,$pass,$table,$ut);

} else {

$install_check = 'Not installed';

if(WEB_APP != 'install'){

echo $install_check;

exit;

}

包含了一些数据库的配置文件,以及一些类,以及功能函数

所以这里是略过了,没有什么安全隐患

接下来就是第二个主页的包含文件了

 

Forbiddenip.inc.php了

这里是一个禁止IP的

 

也没问题

接下来是include(WEB_INC.'close.inc.php');

这个文件是控制这个网站的开启和关闭的

这里

 

看到没?这里存在安全隐患,我想大家一定会说,这里哪里有安全隐患呢???

大家请仔细想一想,如果这里的$sys['isclose']=1之后,他是打印出$sys['closeinfo']这个数组变量吧! 如果这里的数组变量可控的话,我们就有机会了

我就举实例吧

这里的$sys再这个文件中下

 

这里的$sys['closeinfo'] 是由后台控制的,如果我们对其修改,然后我就可以拿到webshell了

 

然后sys.inc.php就变成了

 

 

所以大家看到了,这里他是悲剧了,所以只要进后台了。。。这个站就直接取webshell了。这是漏洞一了

0x2

接下来就是最后一个首页包含文件了

include(WEB_INC.'rootstart.inc.php');

 

我就详细分析下吧

这里的变量 a 和 c的话,如果不存在就直接用之前定义好的赋值 ,

这里也存在个包含的漏洞的

所以这里的$a 和 $c 都是可控的

接下来是in_array()这个函数了,他是从数组里面对其进行比较

这里的$controllerName 就是$c 了,而 $config['modtype']的是之前被定义好的,所以这里的$c也就被控制死在这个$config['modtype']里面了,

所以$a

 

如果存在$filepath这个文件,就包含它,这里的$filepath的$action 是可以控制的,可以由用户控制

所以这里我们可以构造成这样子包含

 

也截断了,这种情况是gpc关的,不过也可以再开的时候才用./来突破来包含,win下256,

*nix下4000多吧,(钻石网络安全) 具体我也忘记了。

所以这也算是一个安全隐患吧!

0x3

接下来包含的是

默认包含的是include\controller 下的

 

 

这里的一些文件是实例化一些类

然后,妈妈的,大家看

 

这里的一个intval函数就把我们堵死了,所以如果想通过这2个参数去注入是不可能了。。。。

接下来的是对$a 进行switch判断

 

首先默认的是list

这里的进入数据库查询的有

$where

 

我们跟进一下这个$db-execute()看看先

这个在db.class.php这个数据库类当中

 

大家看他写的方法

 

 

接下来这个safesql就是处理我们sql语句了,妈的,我觉得他这里处理的有点类似于dedecms的

 

 

这个功能方法很强大,可以对付很多黑客的.... (嘿嘿)

大家可以仔细研究研究,我刚刚也试了试,还是可以的....如果以后大家的站,也可以加上以上的一些方法来搞了

不过他这里还是有一定的问题的,例如末尾

 

他将一些错误信息写进去,由于这里是不能进行报错处理(哎,我也说不清了,自己看看代码这里你就清楚了),

所以我们可以直接构造一个$log_file的变量为php,然后将一些错误信息进行触发该漏洞,将我们的恶意代码写进去

 

这就是触发之后的文件....所以同样可以。。。。

但是前提是能进行变量覆盖。。。。。

接下来是show 了

 

这里的关键变量也是做了处理的,所以你想注入的话,哥,不太现实了。。。。

中间我就省略很多过程不去分析了,所以前台我就分析道这了

接下来就是后台分析了

0x4

后台差不多。。。

我就讲一下变量覆盖吧

这是后台的

 

这里我想了想,这里的变量如果代码只要稍微改改,我们就可以绕过网站数据库登陆后台的,

其实说的也就是变量覆盖了,这里只要这里将common.inc.php中的一个

 

提到最顶上,我们就可以进行变量覆盖了

这个漏洞呢,大家百度吧,我只演示过程

将这里的变量覆盖就ok了

 

 

这里需要的是我们重新搭建个数据库。。。然后我们就可以利用了

现在直接登录后台

 

 

这样子就完了,所以。。。。。

本章关健词:江南数联 域名注册 海外虚拟主机 G享虚拟主机 国内虚拟主机 企业邮箱 网站建设 自助建站 400电话申请 微聚商

 
  版权申请:实战php网站漏洞挖掘步骤,PHP web挖掘漏洞出自江南数联dns06.com未经授权请勿转载!  
 
  • 上一篇帮助:

  • 下一篇帮助:
  •  
         

    扫一扫关注公众号有礼
    Copyright@2004-2015 江南数联 版权所有未经授权请勿复制!
    《中华人民共和国增值电信业务经营许可证》ISP证编号:皖B2-20080036 湘B2-20160056
    公司全称:永州石头网络技术有限公司(运营部)
    地址: 中国·湖南省永州市育才路158号 服务热线:400 616 9260
    安徽公司:安徽仁科信息技术有限公司 地址:合肥万和新城广场A-608 
    关注词:网站空间虚拟空间空间域名域名空间域名主机网站空间哪家好网站空间多少钱