延時盲注(一)

2021-10-08 02:01:11 字數 1804 閱讀 6859

適用於,無法回現和無法顯示錯誤頁面的場景

我們看到介面,首先在url欄進行get傳參,但是沒有任何回顯,介面沒有變化

然後使用延時注入,

這裡我們用到了資料庫裡的if語句

有點類似於三元運算,條件成立,就執行第二個,條件不成立就執行第三個。

結果=12時網頁睡眠,可以判斷當前庫名有12個字元

結果=107時網頁睡眠,可以判斷庫名第乙個字元對應的ascii碼為107 字元為 k

接下來就用工具來跑了

跟以往的方法不一樣,這裡不是看資料報的長度了,因為這裡返回的所有資料都是一樣的,所以也就所有的資料報的長度也都一樣。

但是通過前面我們手動注入時發現,延時注入成功的話,頁面會睡眠,然後再回顯給你,

那麼我們就來看那個資料報,沒有回顯過來。而是去睡眠去了,通過這樣,我們來知道是否延時注入成功。

還有就是,因為我們是通過睡眠的頁面來判斷是否延時注入成功。那麼我們肯定就不能全部一起跑,否則很難看出來。

" and%20if(ascii(substr(database(

),1,1))

=107,sleep(20),1) %23

注意要變成url編碼喲

把substr函式的起始位置一直手動替換,然後爆破,

最後拼接起來的

這條查詢語句查詢出來可能會查詢出多個表(多個字串),

但是substr函式只能處理乙個字串,

所有我們要在後面加上 limit 函式,限制只能輸出乙個表(乙個字串)

" and if(ascii(substr((select table_name from information_schema.tables where table_schema=database(

) limit 0,1

),1,

1))>106,sleep(5),1) -- +

後面的做法跟布林盲注的思路都是一樣的,只是多了個if語句和只能乙個乙個爆破點的跑。

SQL盲注 時間盲注,dnslog盲注

時間盲注原理 id get id sql select from users where id id limit 0,1 result mysql query sql row mysql fetch array result if row else 存在sql注入漏洞 然而頁面不會回顯資料,也不會回...

2020 07 13 SQL盲注 延時注入

思路 判斷是否存在注入,注入是字元型還是數字型 猜解當前資料庫名 猜解資料庫表名 猜解欄位名 猜解資料 1判斷注入型別 payload result 1 and sleep 5 延遲 1 and sleep 5 沒有延遲 存在字元型注入 2猜解當前資料庫名 2.1猜解資料庫名的長度 payload ...

Oracle基於延時的盲注總結

oracle注入中可以通過頁面響應的狀態,這裡指的是響應時間,通過這種方式判斷sql是否被執行的方式,便是時間盲注 oracle的時間盲注通常使用dbms pipe.receive message 而另外一種便是decode 與高耗時sql操作的組合,當然也可以是case,if 等方式與高耗時操作的...