經過前幾篇的實作,相信大家已經開始熟悉如何透過工具進行滲透測試、漏洞發現以及基礎的攻擊操作。不過,駭客攻擊的核心在於了解背後的原理與風險。這次我們就進入到理論層面,來分析現今最常見的網頁應用程式漏洞。而若要提到漏洞分析,是絕對不可能不提到OWASP Top 10,不論是資安界還是駭客圈,他都是每個人必須了解的基礎知識。
由 OWASP (Open Web Application Security Project) 發布的一份針對網頁應用程式安全的全球性報告,可以幫助開發人員、資安專家及企業了解最常見的安全風險。它列出了當前最嚴重、最廣泛被利用的十大網頁應用程式漏洞,並定期更新,以反映新的攻擊手法和安全趨勢。
我認為OWASP TOP 10像是一份菜單,上面列了最常見的漏洞,最初學駭客來說,學習成本算是最低的,而且因為常見,也有許多前輩會有教學或是範例程式可以參考學習。
因為top 10的內容會隨時間變化,於是我就依照目前最新的一份報告來與大家分享與說明
當應用程式沒有正確實施對敏感資源的存取控制,駭客可以繞過認證機制並取得授權以外的權限。
駭客有機會繞過正常的權限檢查,直接修改 URL、API 或是操作前端的數據來進入「限制區」,比如存取管理員權限的頁面,或刪除重要數據。
不當的加密方式或沒有使用加密來保護機密數據,特別是當應用程式未加密傳輸或儲存敏感資訊。
攔截未加密的網路流量,竊取機密資訊如密碼、信用卡資料,或者攻擊使用弱加密算法的系統,進而破解並篡改數據。
SQL、NoSQL、命令注入等,這些攻擊是通過將惡意指令嵌入到應用程式的輸入位置來操控後端系統。更詳細可以參考上一篇文章。
通過篡改用戶輸入來控制應用程式的行為,甚至能直接控制後端伺服器。
在設計時就沒有考慮安全性,導致系統的防護措施不足以抵禦攻擊,很常發生在初出茅廬的新鮮人作的程式上。
找到設計上的「捷徑」,繞過系統的防禦機制。這不完全是因為編碼錯誤,而是設計階段就沒有考慮到潛在的攻擊場景。
不正確的系統配置,像是不安全的預設設定或使用舊版、不再更新維護的軟體。
最常見的方式就是使用預設帳號,像是許多人家的路由器的帳號密碼應該都還是admin/admin或user吧
應用程式或系統使用了有已知漏洞的第三方軟體元件。所以有時侯下載遊戲或防毒可能更容易被攻擊。
查詢應用程式使用的第三方元件是否有已知漏洞,並利用這些漏洞來攻擊未更新的系統或模組。
錯誤的身份驗證和會話管理機制,可能導致未授權的使用者取得其他使用者甚至是root的權限。
可能通過弱密碼暴力攻擊、未加密的會話 ID 攔截等方式,竊取或冒充使用者身份,登錄至高權限的帳號。
未能妥善保護應用程式、程式碼或資料完整性,特別是軟體供應鏈攻擊和不安全的CI/CD流程。
攻擊者可以在軟體更新過程中注入惡意代碼,或是利用不安全的 CI/CD 流程來篡改應用程式。
缺乏有效的安全性日誌記錄和監控,會讓駭客攻擊長時間不被發現。
駭客滲透時必須刪除或修改log,但如果log什麼都不紀錄,就少了一個可能會被抓到的機會。
利用 SSRF 將伺服器當作代理,發起內部或外部的惡意請求,進而存取敏感資料。
讓伺服器發出內部請求,繞過防火牆或其他安全措施,並進行資料竊取或攻擊。