[點(diǎn)晴永久免費(fèi)OA]常見Web安全漏洞類型
為了對(duì)Web安全有個(gè)整體的認(rèn)識(shí),整理一下常見的Web安全漏洞類型。 01:注入漏洞 1)SQL注入(SQL Injection) 由于程序?qū)QL相關(guān)的一些敏感字符缺少過濾or轉(zhuǎn)換,攻擊者把SQL命令插入到用戶提交的數(shù)據(jù)中,欺騙服務(wù)器執(zhí)行惡意的SQL命令,非法獲取到內(nèi)部權(quán)限和數(shù)據(jù)。 風(fēng)險(xiǎn):讀取or篡改數(shù)據(jù)庫(kù)的數(shù)據(jù),獲取服務(wù)器or管理員權(quán)限 類型: a、數(shù)據(jù)型 b、字符型 其他注入方式 c、偽靜態(tài)注入 d、GET & POST注入 e、Cookie注入 2)SQL盲注(SQL Blind Injection) a.基于布爾的盲注[Boolean-Based] SQL注入過程中,應(yīng)用程序僅僅返回True頁(yè)面和False頁(yè)面,無法根據(jù)應(yīng)用程序的返回頁(yè)面得到數(shù)據(jù)庫(kù)信息,但可通過構(gòu)造邏輯條件(如比較大小)向服務(wù)端請(qǐng)求后的返回頁(yè)面來分析判斷我們所需要的數(shù)據(jù)庫(kù)信息。 b.基于時(shí)間的盲注[Time-Based] 注入的SQL代碼影響后臺(tái)數(shù)據(jù)庫(kù)的功能,但此時(shí)Web的前端頁(yè)面始終顯示True頁(yè)面,知識(shí)頁(yè)面返回的響應(yīng)時(shí)間有差異,可以根據(jù)時(shí)間差來推斷注入語句中的判斷條件真假,繼而獲取數(shù)據(jù)庫(kù)相關(guān)的信息。 3)OS命令注入 OS Command Injection,當(dāng)應(yīng)用程序使用外部輸入的字符串,or使用受外部影響的字符串來組裝命令時(shí),若沒有進(jìn)行安全過濾防范,可能產(chǎn)生OS命令的注入攻擊,甚至操作服務(wù)器相關(guān)的權(quán)限。 4)Xpath注入 利用XPath解析器的松散輸入和容錯(cuò)特性,能夠在URL、表單或其它信息上附帶惡意的XPath查詢代碼,以獲得權(quán)限信息的訪問權(quán)并更改這些信息。 02:失效的身份認(rèn)證和會(huì)話管理 用戶身份認(rèn)證和會(huì)話管理是一個(gè)應(yīng)用程序中最關(guān)鍵的過程,有缺陷的設(shè)計(jì)會(huì)嚴(yán)重破壞這個(gè)過程。在開發(fā)Web應(yīng)用程序時(shí),開發(fā)人員往往只關(guān)注Web應(yīng)用程序所需的功能,通常會(huì)建立自定義的認(rèn)證和會(huì)話管理方案。但要正確實(shí)現(xiàn)這些方案卻很難,結(jié)果這些自定義的方案往往在如下方面存在漏洞:退出、密碼管理、超時(shí)、記住我、密碼問題、帳戶更新等。 03:敏感信息泄露 在最近幾年,這是最常見的、最具影響力的攻擊。這個(gè)領(lǐng)域最常見的漏洞是不對(duì)敏感信息進(jìn)行加密。在數(shù)據(jù)加密過程中,常見的問題是不安全的密鑰生成和管理以及使用弱加密算法、弱協(xié)議和弱密碼。特別是使用弱的哈希算法來保護(hù)密碼。 攻擊者不是直接攻擊密碼,而是在傳輸過程中或從客戶端(例如:瀏覽器)竊取密鑰、發(fā)起中間人攻擊,或從服務(wù)器端竊取明文數(shù)據(jù)。 04:XML外部實(shí)體(XXE) 默認(rèn)情況下,許多舊的XML處理器能夠?qū)ν獠繉?shí)體、XML進(jìn)程中被引用和評(píng)估的URI進(jìn)行規(guī)范。如果攻擊者可以上傳XML文檔或者在XML文檔中添加惡意內(nèi)容,通過易受攻擊的代碼、依賴項(xiàng)或集成,他們就能夠攻擊含有缺陷的XML處理器。 XXE缺陷可用于提取數(shù)據(jù)、執(zhí)行遠(yuǎn)程服務(wù)器請(qǐng)求、掃描內(nèi)部系統(tǒng)、執(zhí)行拒絕服務(wù)攻擊和其他攻擊。 05:失效的訪問控制 由于缺乏自動(dòng)化的檢測(cè)和應(yīng)用程序開發(fā)人員缺乏有效的功能測(cè)試,因而訪問控制缺陷很常見。訪問控制檢測(cè)通常不適用于自動(dòng)化的靜態(tài)或動(dòng)態(tài)測(cè)試。手動(dòng)測(cè)試是檢測(cè)訪問控制缺失或失效的最佳方法,包括:HTTP方法(如:GET和PUT)、控制器、直接對(duì)象引用。 攻擊者可以冒充用戶、管理員或擁有特權(quán)的用戶,或者創(chuàng)建、訪問、更新或刪除任何記錄。 06:安全配置錯(cuò)誤 安全配置錯(cuò)誤可以發(fā)生在一個(gè)應(yīng)用程序堆棧的任何層面,包括網(wǎng)絡(luò)服務(wù)、平臺(tái)、Web服務(wù)器、應(yīng)用服務(wù)器、數(shù)據(jù)庫(kù)、框架、自定義代碼和預(yù)安裝的虛擬機(jī)、容器和存儲(chǔ)。自動(dòng)掃描器可用于檢測(cè)錯(cuò)誤的安全配置、默認(rèn)帳戶的使用或配置、不必要的服務(wù)、遺留選項(xiàng)等。 通常,攻擊者能夠通過未修復(fù)的漏洞、訪問默認(rèn)賬戶、不再使用的頁(yè)面、未受保護(hù)的文件和目錄等來取得對(duì)系統(tǒng)的未授權(quán)的訪問或了解。 07:跨站腳本(XSS) XSS是OWASP Top10中第二普遍的安全問題,存在于近三分之二的應(yīng)用中。由于程序缺少對(duì)某些敏感字符的過濾or轉(zhuǎn)換,攻擊者對(duì)在url或輸入框中輸入HTML/JS惡意代碼提交成功后并被執(zhí)行,獲取用戶or程序敏感信息。 XSS對(duì)于反射和DOM的影響是中等的,而對(duì)于存儲(chǔ)的XSS,XSS的影響更為嚴(yán)重,譬如在受攻擊者的瀏覽器上執(zhí)行遠(yuǎn)程代碼,例如:竊取憑證和會(huì)話或傳遞惡意軟件等。 08:不安全的反序列化 反序列化漏洞有十年的歷史,存在于不同的編程語言中,最為明顯的當(dāng)屬Java、PHP、Python、Ruby。漏洞的本質(zhì)就是反序列化機(jī)制打破了數(shù)據(jù)和對(duì)象的邊界,導(dǎo)致攻擊者注入的惡意序列化數(shù)據(jù)在反序列化過程中被還原成對(duì)象,控制了對(duì)象就可能在目標(biāo)系統(tǒng)上面執(zhí)行攻擊代碼。 09:使用含有已知漏洞的組件 這種安全漏洞普遍存在?;诮M件開發(fā)的模式使得多數(shù)開發(fā)團(tuán)隊(duì)不了解其應(yīng)用或API中使用的組件,更談不上及時(shí)更新這些組件了。如Retire.js之類的掃描器可以幫助發(fā)現(xiàn)此類漏洞,但這類漏洞是否可以被利用還需花費(fèi)額外的時(shí)間去研究。 10:不足的日志記錄和監(jiān)控 對(duì)不足的日志記錄及監(jiān)控的利用幾乎是每一個(gè)重大安全事件的溫床。攻擊者依靠監(jiān)控的不足和響應(yīng)的不及時(shí)來達(dá)成他們的目標(biāo)而不被知曉。 根據(jù)行業(yè)調(diào)查的結(jié)果,此問題被列入了Top10。判斷你是否有足夠監(jiān)控的一個(gè)策略是在滲透測(cè)試后檢查日志。測(cè)試者的活動(dòng)應(yīng)被充分的記錄下來,能夠反映出他們?cè)斐闪耸裁礃拥挠绊憽?/p> 多數(shù)成功的攻擊往往從漏洞探測(cè)開始。允許這種探測(cè)會(huì)將攻擊成功的可能性提高到近100%;據(jù)統(tǒng)計(jì),在2016年確定一起數(shù)據(jù)泄露事件平均需要花191天時(shí)間,這么長(zhǎng)時(shí)間里損害早已發(fā)生。 11:跨站請(qǐng)求偽造(CSRF) CSRF是利用某些web應(yīng)用程序允許攻擊者預(yù)測(cè)一個(gè)特定操作的所有細(xì)節(jié)。由于瀏覽器自動(dòng)發(fā)送會(huì)話cookie等認(rèn)證憑證,攻擊者能創(chuàng)建惡意web頁(yè)面產(chǎn)生偽造請(qǐng)求。這些偽造請(qǐng)求很難與合法請(qǐng)求區(qū)分開。 攻擊者能欺騙受害用戶完成該受害者所允許的任意狀態(tài)改變的操作,比如:更新帳號(hào)細(xì)節(jié),完成購(gòu)物,注銷甚至登錄等操作。 12:未驗(yàn)證的重定向和轉(zhuǎn)發(fā) 應(yīng)用程序經(jīng)常將用戶重定向到其他網(wǎng)頁(yè),或以類似的方式進(jìn)行內(nèi)部轉(zhuǎn)發(fā)。有時(shí),目標(biāo)網(wǎng)頁(yè)是通過一個(gè)未經(jīng)驗(yàn)證的參數(shù)來指定的,這就允許攻擊者選擇目標(biāo)頁(yè)面。 攻擊者鏈接到未驗(yàn)證的重定向并誘使受害者去點(diǎn)擊。由于是鏈接到有效的網(wǎng)站,受害者很有可能去點(diǎn)擊。攻擊者利用不安全的轉(zhuǎn)發(fā)繞過安全檢測(cè)。 這種重定向可能試圖安裝惡意軟件或者誘使受害者泄露密碼或其他敏感信息。不安全的轉(zhuǎn)發(fā)可能允許繞過訪問控制。 13:弱口令漏洞 弱口令(weak password) ,沒有嚴(yán)格和準(zhǔn)確的定義,通常認(rèn)為容易被別人(他們有可能對(duì)你很了解)猜測(cè)到或被破解工具破解的口令均為弱口令,如:生日、名字、簡(jiǎn)單的順序數(shù)字or字符。 14:文件上傳漏洞 文件上傳漏洞是指網(wǎng)絡(luò)攻擊者上傳了一個(gè)可執(zhí)行的文件到服務(wù)器并執(zhí)行。這里上傳的文件可以是木馬,病毒,惡意腳本或者WebShell等。大多數(shù)的上傳漏洞被利用后攻擊者都會(huì)留下WebShell以方便后續(xù)進(jìn)入系統(tǒng)。攻擊者在受影響系統(tǒng)放置或者插入WebShell后,可通過該WebShell更輕松,更隱蔽的在服務(wù)中為所欲為。 WebShell就是以asp、php、jsp或者cgi等網(wǎng)頁(yè)文件形式存在的一種命令執(zhí)行環(huán)境,也可以將其稱之為一種網(wǎng)頁(yè)后門。攻擊者在入侵了一個(gè)網(wǎng)站后,通常會(huì)將這些asp或php后門文件與網(wǎng)站服務(wù)器web目錄下正常的網(wǎng)頁(yè)文件混在一起,然后使用瀏覽器來訪問這些后門,得到一個(gè)命令執(zhí)行環(huán)境,以達(dá)到控制網(wǎng)站服務(wù)器的目的(可以上傳下載或者修改文件,操作數(shù)據(jù)庫(kù),執(zhí)行任意命令等)。 15:緩沖區(qū)溢出 在計(jì)算機(jī)內(nèi)部,輸入數(shù)據(jù)通常被存放在一個(gè)臨時(shí)空間內(nèi),這個(gè)臨時(shí)存放的空間就被稱為緩沖區(qū),緩沖區(qū)的長(zhǎng)度事先已經(jīng)被程序或者操作系統(tǒng)定義好了。向緩沖區(qū)內(nèi)填充數(shù)據(jù),如果數(shù)據(jù)的長(zhǎng)度很長(zhǎng),超過了緩沖區(qū)本身的容量,那么數(shù)據(jù)就會(huì)溢出存儲(chǔ)空間,而這些溢出的數(shù)據(jù)還會(huì)覆蓋在合法的數(shù)據(jù)上。 操作系統(tǒng)所使用的緩沖區(qū)又被稱為堆棧,在各個(gè)操作進(jìn)程之間,指令被臨時(shí)存儲(chǔ)在堆棧當(dāng)中,堆棧也會(huì)出現(xiàn)緩沖區(qū)溢出。當(dāng)一個(gè)超長(zhǎng)的數(shù)據(jù)進(jìn)入到緩沖區(qū)時(shí),超出部分就會(huì)被寫入其他緩沖區(qū),其他緩沖區(qū)存放的可能是數(shù)據(jù)、下一條指令的指針,或者是其他程序的輸出內(nèi)容,這些內(nèi)容都被覆蓋或者破壞掉。 16:業(yè)務(wù)邏輯漏洞 業(yè)務(wù)邏輯問題是一種設(shè)計(jì)缺陷,邏輯缺陷表現(xiàn)為設(shè)計(jì)者或開發(fā)者在思考過程中做出的特殊假設(shè)存在明顯或隱含的錯(cuò)誤。攻擊者會(huì)特別注意目標(biāo)應(yīng)用程序采用的邏輯方式,設(shè)法了解設(shè)計(jì)者與開發(fā)者做出的可能假設(shè),然后考慮如何攻破這些假設(shè)。攻擊者挖掘邏輯漏洞有兩個(gè)重點(diǎn):業(yè)務(wù)流程、http/https請(qǐng)求篡改。 業(yè)務(wù)邏輯漏洞經(jīng)常出現(xiàn)的場(chǎng)景為:賬戶(注冊(cè)/登錄/密碼找回)、交易、支付、個(gè)人信息修改。 該文章在 2024/7/16 17:01:35 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |