DVWA-筆記系列1之Brute Force-LOW
0x01 DVWA簡介
DVWA(Damn Vulnerable Web Application)是一個用來進行安全脆弱性鑒定的PHP/MySQL Web應用,旨在為安全專業人員測試自己的專業技能和工具提供合法的環境,幫助web開發者更好的理解web應用安全防範的過程。
DVWA共有十個模塊,分別是Brute Force(暴力(破解))、Command Injection(命令行注入)、CSRF(跨站請求偽造)、File Inclusion(文件包含)、File Upload(文件上傳)、Insecure CAPTCHA(不安全的驗證碼)、SQL Injection(SQL注入)、SQL Injection(Blind)(SQL盲注)、XSS(Reflected)(反射型跨站腳本)、XSS(Stored)(存儲型跨站腳本)。
需要注意的是,DVWA 1.9的代碼分為四種安全級別:Low,Medium,High,Impossible。初學者可以通過比較四種級別的代碼,接觸到一些PHP代碼審計的內容。
0x02 DVWA的搭建方法
DVWA的搭建方法很簡單請大家自行參考Freebuf上的這篇文章《新手指南:手把手教你如何搭建自己的滲透測試環境。
0x03 Brute Force
Brute Force及暴力破解,就是利用字典對賬號密碼進行窮舉,進而猜出用戶的口令,是比較常見的一種攻擊手法。
下面就對Brute Force兩個等級的PHP代碼進行解析,高級的部分由於我python太菜了,這裡會參考fb上的文章,當然是發個鏈接出來,因為沒有得到原作者的允許,不敢轉載。
0x04 LOW
這個是安全級別最低的一個等級,其服務端核心代碼如下:
這個代碼簡單,只是對Login進行了簡單的校驗即用php的isset函數判斷Login參數是否被設置,沒有任何的防爆破機制,而且從它的SQL語句的編寫可以看出該登陸點存在注入,可以通過構造特定的SQL語句繞過他的驗證機制。下面是具體的方法:
Burpsuite爆破
Burpsuite是一款很好的滲透測試工具,當初聽學長說,他搞滲透一般只用兩個工具即Burp和SQLMAP,而老子滲透都是一咕嚕工具一快上的,也許這就是大牛的世界吧。下面是具體步驟。
1.1burp抓包
1.2 使用Burp的Intruder模塊,即在Proxy模塊處Ctrl+I,接著是設置攻擊參數,如下圖所示。
這裡我們把攻擊參數設置為password,接著是設置Payload即載入字典
1.3設置payload
點擊Intruder模塊中的Payloads功能,在這裡載入我們的密碼字典,然後點擊左上角的Intruder,在選取Start Attack啟動攻擊
1.3攻擊過程和結果
點擊Start Attack之後,Burp就會開始對密碼進行爆破,接下來我們只需要找Lenth中與眾不同的那個就可以得到他的正確口令了。
SQL注入繞過
Low代碼中的sql語句構造是這樣的:
而他的判斷語句是這樣的:
講一下上面的代碼吧,首先先通過mysqli_query執行SQL語句,返回一個資源標識符,如果查詢執行不正確則返回 FALSE。接著通過判斷語句判斷查詢的結果是否正確,即輸入的賬號密碼是否正確與返回的結果是否只有一行。
講完了代碼,知道了原理,我們構造繞過的SQL語句就很容易了,首先,我們只要讓$query中的SQL語句在查詢執行的時候返回True就行了,這裡我們只要在$user中閉合單引號,然後使用mysql注釋符號注釋掉掉後面 AND password語句就可了,在利用mysql的LIMIT 限制他的查詢輸出,綜上所述,我們構造的語句如下:
CC" OR 1=1 LIMIT 0,1#
使用效果如下:
成功繞過。
0x05 總結
上面寫的都是總結,本來想把low和medium兩個等級都寫完了,然後剛寫完這個發現自己頭暈了,歇會先。今晚或者明天再更。
TAG:十棟六葉草 |