網站滲透資安課程學習筆記 (五)
網站滲透資安課程學習筆記 (五)
主要內容:
1. 資訊安全的風險管理
2. 利用 DVWA 進行練習
駭客的成本
如果駭客想要竊取資料勒索金錢,甚至是要上暗網販賣資料的話,也需要評估入侵的效益成本。就是所謂的是否有CP值
不過現代的技術高強的駭客也沒那麼多了,因為當駭客入侵學習成本太高,透過社交工程用騙的真的比較快。
資訊安全的風險管理
資安要考量的,不只是技術層面的防護,是一個流程,包含「預防、偵測、應變、復原」等。
其中的「預防」,要點之一就是資產與風險盤點,而風險管理,又是什麼?
風險就是所有不確定因素,包含天災與人禍
「天災」如:地震、颱風、洪水、海嘯、火山爆發、停電等
像是機房的安全防護,火警SOP,地震時是否會被震毀,異地備份要在哪
重要的資料就連機房選址是否在地震帶都該列為評估項目
廠房/機房失火時,該救嗎?
應該以人員安全為第一,撤離現場
確定火警發生時啟動火警應對程序,如果處理不了就就逃命
若沒有異地備份造成損失,那就是業主自身問題
可主張「緊急避險」原則,
根據台灣《職業安全衛生法》第 6 條,雇主有責任提供安全的工作環境,包含防火設施、緊急逃生通道、演練等。
民法第 149 條:「因避免自己或他人生命、身體、自由、財產上之急迫危難,而不得已之行為,不負賠償責任。」
刑法第 24 條也有相同精神:「因避免自己或他人之生命、身體、自由或財產上之現在之危難,而不得已所為之行為,不罰。」
「人禍」由人為行為、管理疏失或惡意攻擊造成的事件,如:社交工程、管理失誤、惡意行為
DVWA:Damn Vulnerable Web Application
DVWA 是什麼?
它是一個故意設計得非常不安全的 PHP/MySQL 網站。讓資安研究人員、學生、開發者 練習與測試 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 如何啟用?
在 網站滲透資安課程學習筆記 (三)中有提到安裝VM以及靶機
啟動 Kali Linux,可以在 kali 裡面直接架設,前往 https://github.com/digininja/DVWA
網路上有很多教學文章這邊就不多做介紹,
練習是裝到靶機 metasploitable之後,連到靶機 ip
將強度改為 low 來練習
練習一 CSRF(Cross-Site Request Forgery,跨站請求偽造)
CSRF 是?
利用「使用者已經登入網站」的身分,強迫使用者在不知情的情況下發送請求,去執行某些動作。
- 攻擊者不能直接偷到密碼或 Cookie(那是 XSS 的領域)。
- 攻擊者利用的是「使用者已經登入」+「網站對請求沒有驗證真偽」。
在 low 級別中,是沒有任何驗證。點擊 CSRF 然後修改密碼,
有修改成功,並會發現網址變成如下。
http://123.123.123.1/DVWA/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change
意思是只要有人點擊後,只要他是已登入狀態就可以將密碼改成123456
實際上駭客會透過各種方式隱藏,隱藏在網頁裡,甚至利用短網址、轉址工具方法等,讓使用者點擊/被強迫點擊
練習二 XSS(Reflected)
在 網站滲透資安課程學習筆記 (四)篇中有介紹到,利用 input 注入 script
submit 之後就會跳出 alert 訊息。XSS stored 也是相同概念
練習三 SQL Injection (Blind)
1. 輸入以下,可知道存在 SQL Injection 漏洞
製造一個「永遠為真」的條件,繞過驗證
1’or 1’=’1
2. 輸入以下,拿到目前 DVWA 正在使用的資料庫名稱
1' and 1=1 union select 1, database()#
3. 輸入以下,可得到目前資料庫中有哪些資料表
1' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() #
4. 拿到整個 users 表的帳號與密碼清單
1' or 1=1 union select group_concat(user_id,first_name,last_name),group_concat(password) from users #
5. 破解密碼,可利用 John the Ripper 破解
但因為這網站提供的都是常見密碼,所以把 admin 的試丟給 ai 破解,也不用幾秒
還有不同題目可以練習,把一開始調整的難度提高也是不同解法,有興趣可以試試,也有很多教學文