1. 程式人生 > >dvwa low級別前五測試

dvwa low級別前五測試

0x00 環境搭建

phpstudy+dvwa環境的搭建不難,這裡就不詳細說了,詳細參照部落格。
phpstudy下搭建dvwa

0x01 Brute Force(爆破)

Brute Force,即暴力(破解),是指黑客利用密碼字典,使用窮舉法猜解出使用者口令,是現在最為廣泛使用的攻擊手法之一。主要利用工具和字典窮舉密碼,進行滲透。一般在弱型別密碼和沒設定多次密碼錯誤鎖定賬戶時,容易產生爆破漏洞。

參考更多

下面開始測試dvwa的brute force的low級別:
first_test.jpg

爆破的話,就得寄出神器brupsuite了。

1.設定代理,抓包:

brute_low_burp1.jpg

然後抓到了之後可以比較容易看出,GET方式提交請求;

2.Ctrl+I交給intruder模組,clear$,在password上加上$,表示不斷改變password的值。

3.載入字典,然後點選start attack。我是在網上下了一個,其實也可以自己製作攻擊字典。(自制字典

brute_low_burp2.jpg

4.最後發現password的長度與眾不同,且是最長的,可推測password即為正確密碼,手工驗證登陸,發現正確。

brute_low_burp3.jpg

其實,在看完原始碼後發現,這裡有明顯的SQL注入漏洞:

$query="SELECT*FROM`users`WHEREuser='$user'ANDpassword='$pass';";
$result=mysql_query($query)ordie('<pre>'.mysql_error().'</pre>');

這裡沒有任何的語句過濾和檢測,直接用最簡單的SQL注入語句,如:

admin' #
admin' or ''='
admin' or '1'='1

就直接KO了。
brute_ko.jpg

0x02 Command injection

ping.jpg
從原始碼種可以看出,這裡其實是一個ping命令:

if( stristr( php_uname( 's' ), 'Windows NT' ) ) { 
        // Windows 
        $cmd = shell_exec( 'ping  ' . $target );
    } 

window和linux系統都可以用&&來執行多條命令
那麼我們可以用&&執行多個命令:
127.0.0.1&&net user
command.jpg

後言:
在做這個樣例的時候,我發現我的瀏覽器的編碼不太對勁,ping後,輸出的是亂碼:

utf-8.jpg

百度後,得到解決方法:
開啟專案的目錄:x://.../DVWA/dvwa/includes,開啟dvwaPage.inc.php檔案,大約275行左右,
把這裡的gbk 改為gb2312 ,儲存一下便可

inc.jpg

0x03 CSRF

CSRF,全稱Cross-site request forgery,翻譯過來就是跨站請求偽造,是指利用受害者尚未失效的身份認證資訊(cookie、會話等),誘騙其點選惡意連結或者訪問包含攻擊程式碼的頁面,在受害人不知情的情況下以受害者的身份向(身份認證資訊所對應的)伺服器傳送請求,從而完成非法操作(如轉賬、改密等)。

簡單的說,由於使用者瀏覽網頁時,留下了cooike等身份認證資訊,黑客誘惑使用者點選連結等,直接利用使用者的身份進行一些非法操作。與XSS不同的是,CSRF是誘使使用者主動去點選,但是XSS是但一個cookie,然後,黑客或任何人都可以複製這個cookie,非法操作。

這裡是一個修改密碼的例子:
按理說,只有我用我的身份才能改密碼,但是,如果我在別的網站點選了一個連結,然後進了一個如圖的url,那麼我就在我不知情的情況下,主動的被改了密碼。

隨便交個passwd:123
觀察url:

http://127.0.0.1/DVWA/vulnerabilities/csrf/?password_new=123&password_conf=123&Change=Change

注意:這裡改的密碼是dvwa的管理密碼,也就是登陸dvwa的密碼,這點一定注意,最好再改回來,免得忘記密碼,登不上dvwa的尷尬。= =(經驗)

在別的網站.jpg
別的網站上訪問攻擊的url.jpg
發現已經把密碼給改了.jpg

0x04 File Inclusion

File Inclusion,意思是檔案包含(漏洞),是指當伺服器開啟allow_url_include選項時,就可以通過php的某些特性函式(include(),require()和include_once(),require_once())利用url去動態包含檔案,此時如果沒有對檔案來源進行嚴格審查,就會導致任意檔案讀取或者任意命令執行。檔案包含漏洞分為本地檔案包含漏洞與遠端檔案包含漏洞,遠端檔案包含漏洞是因為開啟了php配置中的allow_url_fopen選項(選項開啟之後,伺服器允許包含一個遠端的檔案)。

簡單地說,用了檔案包含,可以少寫很多程式碼,但是黑客可以構造url,來包含別的檔案(其實就是訪問伺服器上別的檔案,有的也可以遠端包含——可以執行遠端伺服器下的惡意程式碼)。

樣例有好幾個檔案,隨便開啟一個看看,發現url的變化:
file1.jpg
我們也可以模仿這個url,構造url包含更多的檔案,比如配置檔案。
linux下所有的使用者名稱,密碼資訊會放在/etc/shadow下,所以構造:

http://127.0.0.1/DVWA/vulnerabilities/fi/?page=etc/shadow

然後發現報錯,沒這個檔案,這是因為伺服器系統不是Linux(我的dvwa裝在win 7虛擬機器)。
本地包含.jpg

但是有不錯的發現:

Warning: include(etc/shadow): failed to open stream: No such file or directory in C:\security\phpstudy\WWW\DVWA\vulnerabilities\fi\index.php on line 36

Warning: include(): Failed opening 'etc/shadow' for inclusion (include_path='.;C:\php\pear;../../external/phpids/0.6/lib/') in C:\security\phpstudy\WWW\DVWA\vulnerabilities\fi\index.php on line 36

這裡可以看出檔案的目錄!!
那麼,接下來我們試著訪問別的檔案:
假如在該路徑下有別的機密檔案,恰好可以訪問的到!!
訪問路徑的其他檔案.jpg
假設有一個配置檔案.png

0x05 file upload

File Upload,即檔案上傳漏洞,通常是由於對上傳檔案的型別、內容沒有進行嚴格的過濾、檢查,使得攻擊者可以通過上傳木馬獲取伺服器的webshell許可權,因此檔案上傳漏洞帶來的危害常常是毀滅性的,Apache、Tomcat、Nginx等都曝出過檔案上傳漏洞。

這個漏洞在表哥的課上也是重點演示的,可帥了!

1.先構造個一句話木馬:

一句話.jpg

2.上傳一句話木馬,這裡low沒有任何過濾檢查,直接上傳php都行。。。

上傳php木馬.jpg

3.開啟菜刀,連結這個上傳的路徑。

菜刀.jpg

4.下面木馬執行,就得到了伺服器webshell,可以為所欲為了(下載更改檔案)。
得到所有檔案的讀寫.jpg