预备知识
SQL盲注
1)SQL盲注介绍
盲注就是在sql注入过程中,sql语句执行的选择后,选择的数据不能回显到前端页面。此时,我们需要利用一些方法进行判断或者尝试,这个过程称之为盲注。盲注分为三种类型:基于布尔的SQL盲注、基于时间的SQL盲注、基于报错的SQL盲注。
2)关于SQL基础语句
增:
insert into tableName(columnName1,columnName2) values(value1,value2)
删:
delete from tableName where …
改:
update tableName set columnName=value where …
查:
select * from tableName where …
3)Information_schema数据库基本表说明:
schemata表:提供了当前mysql实例中所有的数据库信息,show databases的结果就是从该表得出。具体表可通过phpstudy中MySQL管理器查看。
tables表:提供了关于数据库中的所有表的信息,即表属于哪个schema,表的创建时间、表的类型等,show tables fromschemaName的结果就是从该表得出。
columns表:提供表中所有列信息,即表明了表中所有列及每列的信息,show columns from schemaName.tableName的结果就是从该表得出。
phpstudy介绍
phpStudy是一个PHP调试环境的程序集成包。该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境。
实验目的
掌握SQL盲注的基本方法、常用函数、测试流程。
实验环境
操作系统:win10。
辅助工具:firefox、phpstudy。
实验步骤一
我们的任务分为2个部分:
都是先根据报错信息查看到SQL语句中如何闭合参数,同时我们构造语句进行注入。
1.基于布尔型的SQL盲注,同样是表名→列名→字段值的顺序进行爆破。
2.基于报错型及时间型的SQL盲注。
任务描述:突破lesson-5的实验,基于布尔型的SQL盲注,按照表→列→值的顺序,最后查看后台源代码。
1.启动phpstudy,打开http://localhost/sqli-labs-master/,点击page-1后:
2.点击GET-double injection - single quotes-string less-5,进入如下图实验界面:
3.根据提示加入id参数在url中,可以看到他不再像前面报错注入一样回显有效信息,而是一段you are in…的字符串。如果输入正确提示you are in…输入错误则会报错。同样我们加入单引号,可以看到报错了,报错信息中提示我们输入的id参数使用单引号闭合,我们后面加入注释符即可注释掉原本后面的SQL语句。
4.接着我们可以根据他是否报错来判断我们需查询的语句是否正确。
http