




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Web滲透測(cè)試系列_邏輯攻擊1.邏輯缺陷概述2.邏輯攻擊框架3.應(yīng)用程序解析4.邏輯攻擊測(cè)試5.商業(yè)邏輯攻擊6.邏輯攻擊防御7.邏輯探測(cè)工具8.總結(jié)培訓(xùn)提綱邏輯缺陷概述邏輯缺陷概述邏輯缺陷的出現(xiàn) 所有的應(yīng)用程序都通過(guò)邏輯實(shí)現(xiàn)各種功能。而編程實(shí)際上就是將這些功能分解成獨(dú)立、簡(jiǎn)單的邏輯單元,并用代碼結(jié)構(gòu)表示。 大量的邏輯操作加上不同背景的開(kāi)發(fā)人員,增加了邏輯缺陷出現(xiàn)的概率。邏輯缺陷的本質(zhì) 主要源于設(shè)計(jì)者或者開(kāi)發(fā)者在思考過(guò)程中做出的特殊假設(shè)存在明顯或隱含的錯(cuò)誤。邏輯缺陷概述邏輯缺陷的特點(diǎn) 普遍存在性:由于功能的實(shí)現(xiàn)需要大量的邏輯操作,同時(shí)受制于程序員的背景,這類(lèi)缺陷普遍存在于各類(lèi)應(yīng)用程序中。 不固定
2、性:或者稱(chēng)作“十分有針對(duì)性”,因?yàn)槊恳环N邏輯缺陷似乎都是唯一的,它是基于邏輯操作,不同的功能邏輯不同,因此無(wú)法用一般的工具發(fā)現(xiàn)他們。 隱蔽性:大多數(shù)的邏輯漏洞都十分隱蔽,它存在于操作關(guān)系當(dāng)中,甚至是屬于應(yīng)用程序正常的功能邏輯攻擊框架邏輯攻擊框架圖應(yīng)用程序解析概述攻擊一個(gè)應(yīng)用程序,首先要分析這個(gè)應(yīng)用程序,了解清楚了其本身的功能、行為以及使用的技術(shù),有針對(duì)性的攻擊,那么成功的機(jī)會(huì)就變大了。下面就有從邏輯攻擊的角度說(shuō)明應(yīng)用程序分析中應(yīng)該考慮的方面。應(yīng)用程序分析確定應(yīng)用程序功能確定數(shù)據(jù)的進(jìn)入點(diǎn)確定所使用的技術(shù)確定應(yīng)用程序功能大多數(shù)情況下,應(yīng)用程序的功能我們可以通過(guò)web瀏覽的方式獲得,其基本方法就是從
3、主頁(yè)面開(kāi)始,然后每個(gè)鏈接及多階頁(yè)面遍歷。確定應(yīng)用程序功能實(shí)際分析中可參考以下基本步驟: 確定為使程序正常運(yùn)行而建立的核心功能及每項(xiàng)功能的操作; 確定應(yīng)用程序采用的核心安全機(jī)制及他們的工作原理。重點(diǎn)了解處理身份認(rèn)證、會(huì)話(huà)管理與訪(fǎng)問(wèn)控制的關(guān)鍵機(jī)制以及支持他們的功能,如用戶(hù)注冊(cè)和賬戶(hù)恢復(fù); 確定所有較外圍的功能和行為,如重定向的使用、站外鏈接、錯(cuò)誤消息、管理日志功能等; 確定任何與應(yīng)用程序在其他方面使用的標(biāo)準(zhǔn)GUI外觀、參數(shù)命名或?qū)Ш綑C(jī)制不一致的功能,然后將其挑選出來(lái)以進(jìn)行深入測(cè)試;確定數(shù)據(jù)的進(jìn)入點(diǎn)通過(guò)HTTP請(qǐng)求過(guò)程中的參數(shù)獲得大部分的數(shù)據(jù)輸入點(diǎn)通過(guò)對(duì)輸入點(diǎn)的分析確定數(shù)據(jù)處理的邏輯過(guò)程,從而確定數(shù)
4、據(jù)進(jìn)入點(diǎn)確定數(shù)據(jù)的進(jìn)入點(diǎn)實(shí)際分析中可參考以下基本步驟: 確定在應(yīng)用程序中引入用戶(hù)輸入的所有進(jìn)入點(diǎn),包括URL、查詢(xún)字符串參數(shù)、POST數(shù)據(jù)、cookie以及其他由應(yīng)用程序處理的HTTP消息頭; 分析應(yīng)用程序使用的所有定制數(shù)據(jù)傳輸或編碼機(jī)制,如,非常規(guī)的查詢(xún)字符串格式。了解被提交的數(shù)據(jù)是否包含參數(shù)名及參數(shù)值,或者是否使用了其他表示方法; 確定所有在應(yīng)用程序中引入用戶(hù)可控制或其他第三方數(shù)據(jù)的帶外通道,eg,處理和顯示通過(guò)SMTP收到的消息的Web郵件應(yīng)用程序;確定所使用的技術(shù)通常,我們可以通過(guò)很多線(xiàn)索和指標(biāo)確定應(yīng)用程序所采用的技術(shù)。通過(guò)以上的內(nèi)容我們可以初步判斷,服務(wù)器支持PHP技術(shù),同時(shí)由目錄可
5、以判斷對(duì)端是Wordpress平臺(tái)的典型應(yīng)用,同時(shí)可以知道后端很大概率有Mysql數(shù)據(jù)庫(kù)。確定所使用的技術(shù)實(shí)際分析中可參考以下基本步驟: 確定客戶(hù)端技術(shù),如表單、腳本、cookie、Java applet、ActiveX控件與Flash對(duì)象; 確定服務(wù)器端技術(shù),包括腳本語(yǔ)言、應(yīng)用程序平臺(tái)、數(shù)據(jù)庫(kù)及電子郵件系統(tǒng)等后端組件的交互; 檢查應(yīng)用程序響應(yīng)中的HTTP Server消息頭。 運(yùn)行掃描工具對(duì)服務(wù)器做“指紋識(shí)別”; 分析所有獲得信息,包括文件擴(kuò)展名、目錄或 前臺(tái)URL序列。檢查所有會(huì)話(huà)令牌和其他cookie名稱(chēng)等; 獲取分析第三方代碼組件的腳本、參數(shù)及行為等,發(fā)現(xiàn)應(yīng)用程序隱藏的內(nèi)容和功能;邏輯
6、攻擊測(cè)試概述測(cè)試客戶(hù)端數(shù)據(jù)傳輸測(cè)試客戶(hù)端輸入驗(yàn)證測(cè)試客戶(hù)端組件邏輯測(cè)試多階段過(guò)程邏輯測(cè)試不完整輸入處理測(cè)試信任邊界測(cè)試業(yè)務(wù)邏輯測(cè)試客戶(hù)端數(shù)據(jù)傳輸應(yīng)用程序通常以終端用戶(hù)無(wú)法查看或修改的方式向服務(wù)器傳送數(shù)據(jù)。通常開(kāi)發(fā)者認(rèn)為所采用的傳輸機(jī)制將保證傳輸過(guò)程中數(shù)據(jù)不被修改。一般通過(guò)客戶(hù)端傳送數(shù)據(jù)的方式有隱藏表單字段、HTTP cookie、URL 參數(shù)、Referer消息頭、模糊數(shù)據(jù)、ASP.NET ViewState 等。測(cè)試客戶(hù)端數(shù)據(jù)傳輸舉例: 功能:當(dāng)前有一個(gè)用戶(hù)登錄系統(tǒng),登錄成功后會(huì)顯示用戶(hù)歡迎,用戶(hù)名等信息以POST方式提交: 假設(shè):開(kāi)發(fā)者假設(shè)用戶(hù)數(shù)據(jù)傳輸過(guò)程中是安全的。測(cè)試客戶(hù)端數(shù)據(jù)傳輸 攻
7、擊:如果我們使用Burp Suite Proxy攔截傳輸過(guò)程中請(qǐng)求:測(cè)試客戶(hù)端數(shù)據(jù)傳輸 修改用戶(hù)名和密碼后forward,查看結(jié)果:測(cè)試客戶(hù)端數(shù)據(jù)傳輸實(shí)際分析中可參考以下基本步驟: 在應(yīng)用程序中,確認(rèn)隱藏表單字段、cookie和URL參數(shù)明顯用于客戶(hù)端傳送數(shù)據(jù)的所有情況; 根據(jù)以上數(shù)據(jù)出現(xiàn)的位置極其名稱(chēng)與值,嘗試確定其在應(yīng)用程序邏輯中發(fā)揮的作用; 修改數(shù)據(jù)在應(yīng)用程序相關(guān)功能中的值,確定應(yīng)用程序是否處理字段中提交的任意值,并確定這樣做是否可以干擾其正常邏輯; 如果應(yīng)用程序通過(guò)客戶(hù)端傳輸模糊數(shù)據(jù),我們依然可以使用各種方式攻擊它。Eg:如果模糊處理,則可以嘗試破解算法,提交任意數(shù)據(jù)。如果采用安全加密
8、,則可使用其他加密塊替換提交以攻擊程序邏輯;測(cè)試客戶(hù)端輸入驗(yàn)證在客戶(hù)端輸入上,常采用的手段是HTML表單、客戶(hù)端腳本以及一些禁用元素等。這些方法的使用假設(shè)為:用戶(hù)的輸入經(jīng)過(guò)了客戶(hù)端的限制,從而可以保證數(shù)據(jù)的合法性。測(cè)試客戶(hù)端輸入驗(yàn)證舉例: 功能:頁(yè)面輸入字段為防止各類(lèi)攻擊(eg:SQL注入),采用了單引號(hào)轉(zhuǎn)義,將兩個(gè)單引號(hào)構(gòu)成一個(gè)原義單引號(hào),同時(shí)限制了輸入長(zhǎng)度為128字符。 假設(shè):對(duì)于攻擊的防御采用轉(zhuǎn)義,則攻擊者無(wú)法實(shí)現(xiàn)單引號(hào)的輸入攻擊。 攻擊:考慮以下情況,如果經(jīng)過(guò)應(yīng)用程序單引號(hào)轉(zhuǎn)義后的字符串,提交給了截?cái)喙δ?,那么是否可以繞過(guò)限制。測(cè)試客戶(hù)端輸入驗(yàn)證 如果我們考慮用戶(hù)名修改為:adminn
9、nnnnn 127個(gè)字符 由于先做轉(zhuǎn)義再截?cái)啵瑒t輸入數(shù)據(jù)依然是 adminnnnnnn 127個(gè)字符 配合password字段輸入 or 1=1- - ,則查詢(xún)語(yǔ)句變成: SELECT * FROM users WHERE name= adminnnnnnn127個(gè)字符 and password= or 1=1- - 由于在數(shù)據(jù)庫(kù)中連個(gè)單引號(hào)作為轉(zhuǎn)義,所以會(huì)被當(dāng)做數(shù)據(jù)而非結(jié)構(gòu),則數(shù)據(jù)庫(kù)實(shí)際查詢(xún)的用戶(hù)名為:adminnnnnnn 127個(gè)字符 and password= 因此我們可以構(gòu)造 or 1=1 - -部分,實(shí)現(xiàn)注入查詢(xún)。測(cè)試客戶(hù)端輸入驗(yàn)證實(shí)際分析中可參考以下基本步驟: 在用戶(hù)輸入提交給服
10、務(wù)器之前,確定使用長(zhǎng)度限制和JavaScript檢查等方式進(jìn)行的數(shù)據(jù)輸入檢查; 通過(guò)提交客戶(hù)端限制的輸入,輪流測(cè)試每一個(gè)受影響的字段,確定服務(wù)器是否使用相同的輸入確認(rèn); 檢查確認(rèn)HTML表單禁用元素,修改其數(shù)據(jù),與其他表單一起提交,以確定該元素是否會(huì)對(duì)應(yīng)用程的邏輯產(chǎn)生影響; 刪除或修改客戶(hù)端腳本,確定服務(wù)器是否只依賴(lài)客戶(hù)端的檢查; 利用客戶(hù)端本身的功能,eg:轉(zhuǎn)義、長(zhǎng)度限制等進(jìn)行避開(kāi)輸入改變程序邏輯;測(cè)試客戶(hù)端組件邏輯客戶(hù)端組件及控件也是一種收集、確認(rèn)并提交用戶(hù)數(shù)據(jù)的主要方法由于速度和用戶(hù)體驗(yàn)方面的原因,之前在服務(wù)器端處理的任務(wù)將在客戶(hù)端執(zhí)行,這將有意無(wú)意的增加客戶(hù)端的風(fēng)險(xiǎn)開(kāi)發(fā)者假設(shè)操作的用戶(hù)
11、都是可信任的或者瀏覽器擴(kuò)展會(huì)自行防御惡意企圖由于相對(duì)HTML表單和JavaScript確認(rèn)機(jī)制,控件方式更加不透明,這也使得開(kāi)發(fā)者認(rèn)為控件的確認(rèn)更加難以避免測(cè)試客戶(hù)端組件邏輯舉例: 功能:購(gòu)物網(wǎng)站一般都有購(gòu)物車(chē)功能,這些功能大多是由控件實(shí)現(xiàn),同時(shí)控件中會(huì)加載一些購(gòu)物策略,eg:購(gòu)物滿(mǎn)多少可以打幾折等,通過(guò)分析我們也許可以直接獲得低折扣的商品價(jià)格。同時(shí)在結(jié)算頁(yè)面確認(rèn)時(shí)還可以選擇商品數(shù)量及退訂商品。 假設(shè):當(dāng)購(gòu)物車(chē)的商品滿(mǎn)1000元的時(shí)候,可以享受8折優(yōu)惠,當(dāng)滿(mǎn)2000元的時(shí)候可以享受7折優(yōu)惠,同時(shí)在提交結(jié)算頁(yè)面時(shí)計(jì)算最終折扣。測(cè)試客戶(hù)端組件邏輯 攻擊:以上假設(shè)沒(méi)有考慮到購(gòu)物者放入商品后結(jié)算確認(rèn)時(shí)
12、再修改商品的情況,因此購(gòu)物者可以將大量商品放入購(gòu)物車(chē)以獲得最優(yōu)折扣,在結(jié)算確認(rèn)頁(yè)面再將部分商品退掉或修改商品數(shù)量,這樣就可以獲得最優(yōu)的折扣。 以上的例子舉的比較淺顯,實(shí)際的控件功能邏輯更加復(fù)雜,同時(shí)數(shù)據(jù)可能會(huì)采取模糊或者加密處理,因此實(shí)際的分析中應(yīng)當(dāng)更加嚴(yán)謹(jǐn)。測(cè)試客戶(hù)端組件邏輯實(shí)際分析中可參考以下基本步驟: 使用代理工具對(duì)客戶(hù)端和服務(wù)器端的流量進(jìn)行監(jiān)視。如果發(fā)現(xiàn)數(shù)據(jù)被序列化,則可以使用某種去序列化工具或插件; 瀏覽控件在客戶(hù)端的所有功能,并使用代理修改關(guān)鍵請(qǐng)求或者服務(wù)器響應(yīng),以確認(rèn)任何可以改變數(shù)據(jù)邏輯的功能; 反編譯客戶(hù)端控件,分析相關(guān)代碼,確認(rèn)其中的輸入限制及其他邏輯方式;測(cè)試客戶(hù)端組件邏輯
13、 附加調(diào)試器,查找監(jiān)視關(guān)于安全及業(yè)務(wù)邏輯的功能和值,并設(shè)置斷點(diǎn),修改參數(shù)或返回值,嘗試邏輯攻擊; 借助客戶(hù)端組件或控件的調(diào)用代碼,執(zhí)行有目的的數(shù)據(jù)調(diào)用及輸入或者進(jìn)行模糊輸入測(cè)試,并監(jiān)控處理結(jié)果; 嘗試發(fā)現(xiàn)各種隱藏的功能、參數(shù)或資源,通過(guò)開(kāi)啟功能或調(diào)用資源等獲得服務(wù)器資源; 嘗試通過(guò)組件功能獲得其他相關(guān)信息(eg:對(duì)手信息、預(yù)發(fā)布信息等);測(cè)試多階段過(guò)程邏輯應(yīng)用程序的最終提交需要經(jīng)過(guò)過(guò)個(gè)階段的信息獲取及確認(rèn)(eg:找回密碼功能)針對(duì)這類(lèi)功能,開(kāi)發(fā)人員默認(rèn)前一階段提交過(guò)來(lái)的數(shù)據(jù)是可信的,這種假設(shè)也就造成了大量的多階過(guò)程邏輯漏洞舉例: 功能:一般的網(wǎng)上購(gòu)物流程如下 瀏覽商品并添加到購(gòu)物車(chē) 確認(rèn)訂單
14、輸入支付信息 輸入交貨信息測(cè)試多階段過(guò)程邏輯 假設(shè):開(kāi)發(fā)者會(huì)認(rèn)為用戶(hù)總會(huì)按照預(yù)定的順序執(zhí)行每一個(gè)步驟,因?yàn)檫@是應(yīng)用程序通過(guò)顯示在瀏覽器中的導(dǎo)航鏈接和表單向用戶(hù)提供的處理順序。因此,開(kāi)發(fā)者認(rèn)為任何完成訂購(gòu)過(guò)程的用戶(hù)一定已經(jīng)提交了正確的支付信息。 攻擊:這里開(kāi)發(fā)者的假設(shè)存在明顯的缺陷,用戶(hù)控制著他們向應(yīng)用程提出的每一個(gè)請(qǐng)求,因此能夠以任何順序訪(fǎng)問(wèn)訂購(gòu)過(guò)程的每一個(gè)階段。如果直接從步驟 2進(jìn)入步驟 4,攻擊者就可以生成一個(gè)最終確定交貨但實(shí)際并未支付的訂單。以上的攻擊方法叫做強(qiáng)制瀏覽,包括突破瀏覽器導(dǎo)航對(duì)應(yīng)用程序功能訪(fǎng)問(wèn)順序?qū)嵤┑娜魏蜗拗茰y(cè)試多階段過(guò)程邏輯實(shí)際分析中可參考以下基本步驟: 如果一個(gè)多階過(guò)程
15、需要按照預(yù)定的順序提交一系列請(qǐng)求,嘗試按其他順序提交這些請(qǐng)求。嘗試完全省略某個(gè)階段,幾次訪(fǎng)問(wèn)同一個(gè)階段,或者推后訪(fǎng)問(wèn)前一個(gè)階段; 確保應(yīng)用程序訪(fǎng)問(wèn)不同階段所使用的機(jī)制。這些階段可能通過(guò)一系列指向特殊URL的GET或POST請(qǐng)求進(jìn)行訪(fǎng)問(wèn),或者向同一個(gè)URL提交不同的參數(shù)。被訪(fǎng)問(wèn)的階段可以通過(guò)提交的參數(shù)中指定名稱(chēng)或索引來(lái)確定;測(cè)試多階段過(guò)程邏輯 嘗試提取某一階段的參數(shù),并在另一個(gè)階段中提交這些參數(shù)。如果相關(guān)數(shù)據(jù)被應(yīng)用程序更新,應(yīng)當(dāng)確定是否可以利用這種行為破壞應(yīng)用程序的邏輯; 根據(jù)執(zhí)行功能的情形,了解開(kāi)發(fā)者做出的假設(shè)及主要攻擊面的位置。設(shè)法找到違反這些假設(shè)以在應(yīng)用程序造成反常行為的方法; 如果應(yīng)用程
16、序表現(xiàn)出一系列異?,F(xiàn)象,eg:提示錯(cuò)誤、變量未賦值或初始化等。尋找有用的錯(cuò)誤消息及調(diào)試結(jié)果,可以通過(guò)他們進(jìn)一步了解該功能的內(nèi)部機(jī)制,從而調(diào)整攻擊方向和方法;測(cè)試不完整輸入處理客戶(hù)端完成對(duì)用戶(hù)輸入的收集及確認(rèn),必要時(shí)會(huì)對(duì)數(shù)據(jù)進(jìn)行計(jì)算或簡(jiǎn)單的功能處理,部分情況下應(yīng)用程序的處理過(guò)程和某些數(shù)據(jù)是否輸入有關(guān),eg:不勾選發(fā)票項(xiàng),則不走發(fā)票流程。這些功能的處理是本著用戶(hù)并不知情關(guān)鍵數(shù)據(jù)對(duì)功能具體影響的前提假設(shè)(客戶(hù)端對(duì)用戶(hù)屏蔽處理機(jī)制),這也會(huì)引入大量安全問(wèn)題。測(cè)試不完整輸入處理舉例: 功能:應(yīng)用程序?yàn)橛脩?hù)提供密碼修改功能。它要求用戶(hù)填寫(xiě)用戶(hù)名、當(dāng)前密碼、新密碼以及新密碼確認(rèn)。同時(shí)應(yīng)用程還為管理員提供密碼
17、修改功能,它允許管理員修改任何用戶(hù)的密碼,而不需要提供用戶(hù)當(dāng)前密碼。這兩個(gè)功能在同一個(gè)服務(wù)器端腳本中執(zhí)行。測(cè)試不完整輸入處理 假設(shè):應(yīng)用程序?yàn)橛脩?hù)和管理員提供的界面僅有一點(diǎn)不同:在管理員界面中沒(méi)有用于填寫(xiě)現(xiàn)有密碼的字段。而后端采用的是同一個(gè)腳本。它通過(guò)請(qǐng)求中是否包含當(dāng)前密碼來(lái)確認(rèn)請(qǐng)求是來(lái)自用戶(hù)還是管理員。 攻擊:一旦確定了假設(shè),攻擊就變得十分容易。普通用戶(hù)可以通過(guò)提交不包含現(xiàn)有密碼的請(qǐng)求修改任何用戶(hù)的密碼,從而完全控制用戶(hù)賬戶(hù)。測(cè)試不完整輸入處理實(shí)際分析中可參考以下基本步驟: 輪流測(cè)試每一個(gè)參數(shù),從請(qǐng)求中刪除參數(shù)的名稱(chēng)或值,監(jiān)控應(yīng)用程序的響應(yīng),查找所有行為異常或錯(cuò)誤消息,以獲得和應(yīng)用程序邏輯有
18、關(guān)的信息; 一次僅攻擊一個(gè)參數(shù),確保達(dá)到應(yīng)用程序中所有與參數(shù)相關(guān)的代碼路徑; 如果所操縱的請(qǐng)求屬于一個(gè)多階過(guò)程,應(yīng)測(cè)試整個(gè)過(guò)程。因?yàn)閼?yīng)用程序可能將前一個(gè)階段的數(shù)據(jù)保存在會(huì)話(huà)中,然后在后一個(gè)階段處理;測(cè)試信任邊界信任邊界指在什么地方更改信任級(jí)別,大部分情況下表現(xiàn)為訪(fǎng)問(wèn)控制權(quán)限的更改。應(yīng)用程序?qū)π湃芜吔绲臓顟B(tài)轉(zhuǎn)換處理往往存在著看似安全的假設(shè),因此分析清楚應(yīng)用程序的信任邊界將有助于發(fā)現(xiàn)此類(lèi)邏輯缺陷。舉例: 功能:應(yīng)用程序使用一種安全、多階的登錄機(jī)制,要求用戶(hù)提供多個(gè)不同的證書(shū)才能獲得訪(fǎng)問(wèn)權(quán)限。測(cè)試信任邊界 假設(shè):應(yīng)用程序在實(shí)現(xiàn)登錄認(rèn)證的過(guò)程中將通過(guò)驗(yàn)證用戶(hù)的有關(guān)標(biāo)示符臨時(shí)保存在一個(gè)靜態(tài)(非會(huì)話(huà))變量
19、中,然后執(zhí)行其他“準(zhǔn)備”工作,之后應(yīng)用程序再讀取這個(gè)變量的值。由于這個(gè)間隔時(shí)間十分短暫,因此開(kāi)發(fā)者認(rèn)為是安全的。 攻擊:如果出現(xiàn)這樣一種情況:用戶(hù)集中登錄,這個(gè)時(shí)候就會(huì)出現(xiàn),變量改寫(xiě)后,又被另一個(gè)登錄用戶(hù)改寫(xiě),因此當(dāng)前一個(gè)用戶(hù)回來(lái)取變量值的時(shí)候,用戶(hù)分配到的就是后一個(gè)登錄者的會(huì)話(huà),同時(shí)獲得后者的訪(fǎng)問(wèn)權(quán)限。測(cè)試信任邊界實(shí)際分析中可參考以下基本步驟: 了解應(yīng)用程如何處理不同用戶(hù)信任狀態(tài)之間的轉(zhuǎn)換; 通過(guò)在一個(gè)區(qū)域積累相關(guān)狀態(tài),在信任邊界之間進(jìn)行不恰當(dāng)?shù)霓D(zhuǎn)換,然后以正常不被允許的方式切換到另一個(gè)區(qū)域; 確定是否可以利用更高權(quán)限的功能直接或間接訪(fǎng)問(wèn)或者猜測(cè)某些信息;測(cè)試業(yè)務(wù)邏輯業(yè)務(wù)邏輯攻擊,其特點(diǎn)是利
20、用正常的、合法的業(yè)務(wù)流程進(jìn)行攻擊,而非破壞邏輯 舉例: 功能:用戶(hù)登錄為防止自動(dòng)化登錄攻擊而設(shè)定了鎖定次數(shù),當(dāng)正常登錄錯(cuò)誤達(dá)到一定次數(shù)后則封鎖該用戶(hù)一段時(shí)間。 假設(shè):此功能的假設(shè)是防止惡意登錄攻擊,從而保護(hù)用戶(hù)賬戶(hù)安全。測(cè)試業(yè)務(wù)邏輯 攻擊:我們考慮另一種情況,假設(shè)某電商網(wǎng)站做活動(dòng),進(jìn)行某件商品的競(jìng)拍,出價(jià)最高者獲得此商品。如果在接近競(jìng)拍結(jié)束的時(shí)候,競(jìng)爭(zhēng)對(duì)手的價(jià)格比自己高,而再次出價(jià)競(jìng)爭(zhēng)對(duì)手也可能加價(jià),這種情況下我們就可以利用業(yè)務(wù)邏輯攻擊,故意使用錯(cuò)誤的密碼登陸對(duì)手賬戶(hù)另其鎖定,無(wú)法再次出價(jià),從而順利的獲得該商品。測(cè)試業(yè)務(wù)邏輯實(shí)際分析中可參考以下基本步驟: 分析應(yīng)用程的正常邏輯、目的以及使用場(chǎng)景
21、; 盡量將其應(yīng)用場(chǎng)景進(jìn)行擴(kuò)展,并結(jié)合具體業(yè)務(wù)內(nèi)容進(jìn)行分析; 分析是否可以使用一連串的交易達(dá)到一種狀態(tài),從而完成預(yù)期目的(eg:多次低額轉(zhuǎn)賬代替單次大額轉(zhuǎn)賬); 如果應(yīng)用程序根據(jù)用戶(hù)控制的數(shù)據(jù)或操作確定處理方式或其他敏感內(nèi)容,應(yīng)首先分析應(yīng)用程序使用的算法及需要調(diào)整的邏輯; 努力想辦法操縱應(yīng)用程序的行為,使應(yīng)用程序進(jìn)行的調(diào)整與開(kāi)發(fā)者最初設(shè)定的標(biāo)準(zhǔn)相矛盾;商業(yè)邏輯攻擊概述當(dāng)前應(yīng)用邏輯攻擊發(fā)展出來(lái)的一種新型攻擊方式稱(chēng)之為 BLA,即 Business Logic Attacks(商業(yè)邏輯攻擊)的縮寫(xiě),這是由世界著名數(shù)據(jù)安全公司 Imperva 在 2011 年 6 月至 11月期間所發(fā)現(xiàn)的一種新型網(wǎng)絡(luò)
22、攻擊方式(詳情參閱黑客發(fā)現(xiàn)攻擊新手段關(guān)注業(yè)務(wù)邏輯攻擊),而這種攻擊很可能將成為未來(lái)互聯(lián)網(wǎng)世界里商戰(zhàn)的雛形。商業(yè)邏輯攻擊攻擊分析攻擊分類(lèi)攻擊目的攻擊手段實(shí)際案例未來(lái)分析商業(yè)邏輯攻擊攻擊分析 這種攻擊不同于傳統(tǒng)攻擊方式,它一般不以破壞程序或數(shù)據(jù)為手段,而大多使用正常操作的方式,達(dá)到收集用戶(hù)信息,獲得商業(yè)情報(bào),控制商業(yè)進(jìn)程等目的,因此比較難區(qū)分。 不管是網(wǎng)絡(luò)行為還是攻擊過(guò)程都比較隱蔽,部分攻擊往往在用戶(hù)不知情的情況下進(jìn)行,即使用戶(hù)受到攻擊也無(wú)法察覺(jué),同時(shí)一旦成功影響比較大。商業(yè)邏輯攻擊攻擊分類(lèi) 現(xiàn)在有兩類(lèi)商業(yè)邏輯攻擊比較流行:電子郵件提取和垃圾評(píng)論。 未來(lái)還會(huì)出現(xiàn)以操縱商業(yè)進(jìn)程為目的的攻擊手段,這類(lèi)
23、攻擊一旦發(fā)展起來(lái),將對(duì)互聯(lián)網(wǎng)商業(yè)造成巨大的威脅。攻擊目的 電子郵件提?。航⒗]件發(fā)送列表。 垃圾評(píng)論:一方面導(dǎo)入流量,使得其獲益的網(wǎng)站在搜索引擎的排名靠前,一方面讓搜索引擎更多搜到獲益網(wǎng)站,從而潛在詐騙消費(fèi)者。商業(yè)邏輯攻擊攻擊手段 電子郵件提?。和ㄟ^(guò)電子郵件地址抽取實(shí)現(xiàn)的攻擊,它模擬真實(shí)用戶(hù)訪(fǎng)問(wèn)客戶(hù)網(wǎng)站(論壇、博客、社交網(wǎng)絡(luò)),對(duì)客戶(hù) Web 網(wǎng)站中的電子郵件地址進(jìn)行簡(jiǎn)單抽取和分類(lèi),而這一系列動(dòng)作與正常用戶(hù)訪(fǎng)問(wèn)幾乎完全一樣,很難辨識(shí)出其真實(shí)目的。 垃圾評(píng)論:攻擊者會(huì)在某些排名靠前的論壇注冊(cè),發(fā)表、回復(fù)某些言論,內(nèi)嵌惡意鏈接地址來(lái)改變搜索引擎結(jié)果。為了讓所發(fā)帖子處于顯著位置被更多網(wǎng)友看到,惡
24、意攻擊者會(huì)發(fā)起投票,或想辦法設(shè)置成置頂帖。商業(yè)邏輯攻擊實(shí)際案例在2006年,一家移動(dòng)運(yùn)營(yíng)商(假設(shè)叫 FlawedP)為其客戶(hù)增加了一項(xiàng)webmail+SMS的服務(wù),開(kāi)通和使用流程如下: 新客戶(hù)可以憑 SIM 卡開(kāi)通一個(gè)以 FlawedP 為域名的免費(fèi)、永久 email賬戶(hù); 這個(gè) email 賬戶(hù)在用戶(hù) SIM 卡轉(zhuǎn)到其他運(yùn)營(yíng)商時(shí)仍會(huì)保留; 由于 SIM卡注冊(cè)到了 FlawedPhone ,所以每次收到 email 郵件,F(xiàn)lawedPhone都會(huì)給客戶(hù)發(fā)送一條 SMS,內(nèi)容包括發(fā)件人和郵件主題; 同時(shí) SMS 程序會(huì)每 8 個(gè)小時(shí)檢查一下當(dāng)前合法用戶(hù)列表;商業(yè)邏輯攻擊攻擊步驟: 攻擊者買(mǎi)一張
25、新的 FlawedPhone SIM 卡; 攻擊者馬上將卡轉(zhuǎn)到另一個(gè)運(yùn)行商,這個(gè)運(yùn)營(yíng)商會(huì)在客戶(hù)每收到一條SMS信息時(shí)支付給客戶(hù) 0.05 歐元; 一旦轉(zhuǎn)卡完成,攻擊者就會(huì)向 FlawedPhone 的 email 賬戶(hù)發(fā)送數(shù)以千計(jì)的郵件; 在 email+SMS 應(yīng)用程序檢查并更新合法用戶(hù)列表前,攻擊者最多擁有8個(gè)小時(shí)的空檔; 到發(fā)送截止時(shí),攻擊者的賬戶(hù)上大約已經(jīng)有 50-100 歐元了,然后這個(gè)SIM卡就可以放到 eBay上出售了;商業(yè)邏輯攻擊未來(lái)分析 據(jù)統(tǒng)計(jì),這些商業(yè)邏輯攻擊在惡意攻擊流量中占到 14% 黑客可以利用應(yīng)用程序截獲私人信息,進(jìn)行扭曲,并外泄給其他更多的用戶(hù),而這些行為通常不受
26、安全控制 一旦商業(yè)邏輯攻擊(BLA)與高級(jí)可持性(APT)類(lèi)攻擊相結(jié)合,所爆發(fā)出來(lái)的網(wǎng)絡(luò)商戰(zhàn)威力將不容小視邏輯攻擊防御概述鑒于邏輯缺陷的本質(zhì),即使實(shí)施安全開(kāi)發(fā)標(biāo)準(zhǔn)、使用代碼審查工具或常規(guī)滲透測(cè)試,我們?nèi)匀粺o(wú)法避免這種缺陷。邏輯漏洞的多樣性特點(diǎn)使得探查與防止他們往往需要從各個(gè)不同的角度思考問(wèn)題,這預(yù)示著在很長(zhǎng)一段時(shí)期內(nèi),邏輯缺陷仍將大量存在?;陂_(kāi)發(fā)流程及設(shè)計(jì)的預(yù)防基于網(wǎng)絡(luò)行為識(shí)別的防御基于開(kāi)發(fā)流程及設(shè)計(jì)的預(yù)防遵循以下最佳實(shí)踐可以顯著降低在應(yīng)用程序中出現(xiàn)邏輯缺陷的風(fēng)險(xiǎn): 確保將應(yīng)用程序中各個(gè)方面的設(shè)計(jì)信息清楚、詳細(xì)的記錄在文檔中,以方便其他人員了解設(shè)計(jì)者做出的每個(gè)假設(shè); 要求所有源代碼提供清楚的注釋?zhuān)幌抻谝韵聝?nèi)容: 每個(gè)代碼組件的用戶(hù)和預(yù)計(jì)用法; 每個(gè)組件對(duì)它無(wú)法直接控制內(nèi)容做出的假設(shè); 清楚記錄所有調(diào)用組件的代碼效果;基于開(kāi)發(fā)流程及設(shè)計(jì)的預(yù)防 在以安全為中心的應(yīng)用程序設(shè)計(jì)審核中,考慮在設(shè)計(jì)中做出的每一個(gè)假設(shè),并想象假設(shè)被違背的每種情況。 在以安全為中心的代碼審查過(guò)程中,從各個(gè)角度考慮一下兩個(gè)因素: 應(yīng)用程序如何處理
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高新技術(shù)廠房股權(quán)轉(zhuǎn)讓與區(qū)域經(jīng)濟(jì)轉(zhuǎn)型升級(jí)合同
- 廣告位租賃合同模板
- 智慧水利實(shí)踐及未來(lái)展望
- 大教學(xué)論教育思想
- 家庭保潔培訓(xùn)
- 酒店前臺(tái)禮儀禮節(jié)培訓(xùn)
- 幼兒園走失事件應(yīng)對(duì)策略
- 健康領(lǐng)域核心經(jīng)驗(yàn)培訓(xùn)
- 紅領(lǐng)巾隊(duì)教育體系構(gòu)建
- 幼兒園手足口病培訓(xùn)課件
- GB/T 17626.18-2016電磁兼容試驗(yàn)和測(cè)量技術(shù)阻尼振蕩波抗擾度試驗(yàn)
- SDS汽油安全技術(shù)說(shuō)明書(shū)
- 六年級(jí)科學(xué)上冊(cè)教學(xué)計(jì)劃
- 人教版數(shù)學(xué)六年級(jí)下冊(cè)期末測(cè)試卷及參考答案
- GeneralEnglish-入學(xué)測(cè)試(劍橋五級(jí))附有答案
- 會(huì)議管理系統(tǒng)的分析與設(shè)計(jì)
- JJF(建材)110-2019水泥雷氏夾膨脹測(cè)定儀校準(zhǔn)規(guī)范-(高清現(xiàn)行)
- 省級(jí)土壤樣品庫(kù)實(shí)施方案
- 河南POCT試劑項(xiàng)目投資計(jì)劃書(shū)(模板)
- 2016-2017學(xué)年廣西桂林市八年級(jí)(下)期末數(shù)學(xué)試卷
- 吊裝作業(yè)安全規(guī)范
評(píng)論
0/150
提交評(píng)論