9. Misc

WEBGOAT 實作項目

Insecure Storage

Denial of Service

Insecure Configuration

Insecure Communication

Malicious File Execution

 

 

Insecure Storage

  • Base64

是一種基於64個可列印字符來表示二進位資料的表示方法。可列印字符包括字母A-Z、a-z、數字0-9,這樣共有62個字符,此外兩個可列印符號在不同的系統中而不同。Base64可以利用工具進行解碼,因此作為資料的加密並不安全。

  • MD5

一種被廣泛使用的密碼雜湊函式,可以產生出一個固定長度為128位元的雜湊值(hash value),一般被表示為32位元十六進位數字,用於確保資訊傳輸完整一致。MD5的加密過程不可逆,但透過大型的對照表(彩虹表),就有可能對照出原始的明碼,所以安全性不夠高。

  • SHA

安全雜湊演算法(Secure Hash Algorithm)是一種能計算出一個數位訊息所對應到的,長度固定的字串(又稱訊息摘要)的演算法。SHA家族的五個演算法,分別是SHA-1、SHA-224、SHA-256、SHA-384,和SHA-512,由美國國家安全局(NSA)所設計。

  • SHA-1:對於長度不小於264位元的訊息,SHA-1會產生一個160位元的訊息摘要(message digest),加密速度雖比MD5還要慢一些,但更加安全,不過目前SHA-1被證實是可以破解的。

     (補充) 

彩虹表(Rainbow Table)就是一個龐大的、針對各種可能的字母組合預先計算好的雜湊值(hash value)的集合,不一定是針對MD5演算法的,各種演算法的都有,例如:LM Hash、MD5、SHA-1⋯⋯等,有了它可以快速的破解各類密碼。越是複雜的密碼,需要的彩虹表就越大,現在主流的彩虹表都是100G以上。

提供彩虹表的網站:

http://project-rainbowcrack.com/table.htm

https://crackstation.net

http://www.cmd5.com

 

Denial of Service

  • Denial of Service Attack (DoS)

是一種網路攻擊手法,其目的在於使目標電腦的網路或系統資源耗盡,攻擊者會送出大量的連線請求,讓受害者不堪負荷,以致暫時中斷或停止,無法提供正常的服務。

  1. 利用 SQL Injection 在密碼欄位輸入 ' or '1'='1' 即可登入。

  2. 登入後,可看到系統中的使用者資訊,用這些帳號密碼登入三次即可過關。

       (過關畫面)

  • Zip Bomb

這個Server只接收ZIP檔案,並且會在上傳後解壓縮並計算解壓縮後的檔案大小並刪除它,他最多只提供20MB的暫時儲存,所以超過這個大小的檔案就能成功達到DoS。

上傳一個包含檔案大小大於20MB的任何檔案(ex:.txt)的ZIP檔,上傳後即可過關。

Insecure Configuration

設定管理不當可能讓駭客有可趁之機,有效地設定管理能夠對Web應用程式和主機(包括應用程式伺服器,網頁伺服器及資料庫等)進行防護。再以Web services為例,Web services的所有服務的定義及介面,設定不當會引起資訊被揭露而被駭客利用來進行攻擊。

WebGoat所提供的Insecure Configuration問題頁面

接著在路徑上不斷的嘗試關鍵字找尋設定入口或相關的管理介面

like: /configuration,/configure,/config,/conf

http://localhost:8080/WebGoat/conf

最後我們在上述路徑發現了設定頁面的入口 成功的找到了修改管理員密碼的頁面

 

Insecure Communication

當伺服器使用 https 協定時,所有在使用者端(瀏覽器)和伺服器之間傳遞的資 料,都會經過加密,所以就算使用者的密碼或信用卡號碼在網路上被攔截,也 必需花費相當功夫的解碼後才可以被讀出解讀。 

WebGoat所提供的Insecure Communication問題頁面

由於姓名及密碼已經填好了,所以我們只需要按下送出即可

送出之後會發現到需要再一組密碼做二階驗證,不過我們沒有這組密碼

所以就透過Burp Suite來攔截封包觀看傳送的內容


我們可以發現到雖然是透過POST來發送內容,所以不會附帶在URL後頭

但是因為沒有SSL加密連線,所以封包內容看的一清二楚 我們可以發現 password:sniffy 輸入便成功登入

接下來會要求做與第一步相同的動作,只是這次改用https來連WebGoat後回到頁面以繼續

https://localhost:8080/WebGoat

透過https我們就可以不難發現到這次不再是以明文來傳輸內容,而是加密過的內容來發送訊息

接下來只要如實回答"No"與"TLS"(傳輸層安全協議) 送出後即可過關

 

Malicious File Execution

惡意程式執行,Web引入來自外部的惡意檔案並執行檔案內容

網頁被惡意植入或是接收資料時,沒有對來源進行檢查或防護時,會被強迫抓取別的網頁的惡意程式

這是OWASP所提供的網頁,現在我們把寫好的程式上傳

 

這是jsp的程式我們用java的寫檔在伺服器那裡寫一個txt檔

 

 

 

參考資料:

https://zh.wikipedia.org/wiki/Base64

https://zh.wikipedia.org/wiki/MD5

https://zh.wikipedia.org/wiki/SHA%E5%AE%B6%E6%97%8F

http://baike.baidu.com/item/SHA

http://www.twwiki.com/wiki/%E5%BD%A9%E8%99%B9%E8%A1%A8

https://zh.wikipedia.org/wiki/%E9%98%BB%E6%96%B7%E6%9C%8D%E5%8B%99%E6%94%BB%E6%93%8A

http://2010.e98.org.tw/securitynews/index21.htm

https://en.wikipedia.org/wiki/Zip_bomb