TOP1-注入
簡(jiǎn)單來(lái)說(shuō),注入往往是應(yīng)用程序缺少對(duì)輸入進(jìn)行安全型檢查所引起的芳绩,攻擊者把一些包含指令的數(shù)據(jù)發(fā)送給解釋器,解釋器會(huì)把收到的數(shù)據(jù)轉(zhuǎn)換成指令執(zhí)行撞反。常見(jiàn)的注入包括sql注入妥色,--os-shell,LDAP(輕量目錄訪問(wèn)協(xié)議)遏片,xpath(XPath即為XML路徑語(yǔ)言嘹害,它是一種用來(lái)確定XML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言的子集)文檔中某部分位置的語(yǔ)言)撮竿,HQL注入等。
危害如下:
注入可以導(dǎo)致數(shù)據(jù)丟失或被破壞笔呀,缺乏可審計(jì)性或拒絕服務(wù)幢踏。注入漏洞有時(shí)甚至可導(dǎo)致完全接管主機(jī)
如何防范:
1.使用安全的API,避免使用解釋器
2.對(duì)輸入的特殊的字符進(jìn)行ESCAPE轉(zhuǎn)義處理
例子:LIKE '%M%' ESCAPE ‘M’
使用ESCAPE關(guān)鍵字定義了轉(zhuǎn)義字符“M”凿可,告訴DBMS將搜索字符串“%M%”中的第二個(gè)百分符(%)作為實(shí)際值惑折,而不是通配符
3.使用白名單來(lái)規(guī)范化的輸入驗(yàn)證方法
TOP2-失效的身份認(rèn)證和會(huì)話管理
與認(rèn)證和會(huì)話管理相關(guān)的應(yīng)用程序功能往往得不到正確實(shí)施授账,導(dǎo)致了攻擊者可以破壞密碼枯跑,密鑰,會(huì)話令牌或?qū)嵤┞┒疵俺淦渌脩羯矸?/p>
危害如下:
這些漏洞可能導(dǎo)致部分甚至全部賬戶遭受攻擊白热,一旦攻擊成功敛助,攻擊者就能執(zhí)行合法的任何操作
如何防范:
1.使用內(nèi)置的會(huì)話管理功能
2.通過(guò)認(rèn)證的問(wèn)候
3.使用單一的入口點(diǎn)
4.確保在一開(kāi)始登錄SSL保護(hù)的網(wǎng)頁(yè)
TOP3-跨站XSS
跨站腳本是最普遍的web應(yīng)用安全漏洞。當(dāng)應(yīng)用程序在發(fā)送給瀏覽器的頁(yè)面中包含用戶提供的數(shù)據(jù)屋确,但沒(méi)有經(jīng)過(guò)適當(dāng)驗(yàn)證和轉(zhuǎn)義纳击,就會(huì)導(dǎo)致跨站
危害如下:
攻擊者在受害者瀏覽器中執(zhí)行腳本以劫持用戶會(huì)話,插入惡意內(nèi)容攻臀,重定向用戶焕数,使用惡意軟件劫持用戶瀏覽器等
種類:
存儲(chǔ)型,反射型刨啸,DOM型
如何防范:
1.驗(yàn)證輸入
2.編碼輸出(用來(lái)確保輸入的字符被視為數(shù)據(jù)堡赔,而不是作為html被瀏覽器所解析)
TOP4-不安全的對(duì)象直接引用
意指一個(gè)已經(jīng)授權(quán)的用戶通過(guò)更改訪問(wèn)時(shí)的一個(gè)參數(shù),從而訪問(wèn)到原本其并沒(méi)有得到授權(quán)的對(duì)象
危害如下:
這種漏洞可以損壞參數(shù)所引用的所有數(shù)據(jù)
如何防范:
1.使用基于用戶或會(huì)話的間接對(duì)象訪問(wèn)设联,這樣可防止攻擊者直接攻擊為授權(quán)資源
2.訪問(wèn)檢查:對(duì)任何來(lái)自不受信源所使用的所有對(duì)象進(jìn)行訪問(wèn)控制檢查
3.避免在url或網(wǎng)頁(yè)中直接引用內(nèi)部文件名或數(shù)據(jù)庫(kù)關(guān)鍵字
4.驗(yàn)證用戶輸入和url請(qǐng)求善已,拒絕包含./ ../的請(qǐng)求
TOP5-偽造跨站請(qǐng)求(CSRF)
跨站請(qǐng)求偽造,利用了網(wǎng)站允許攻擊者預(yù)測(cè)特定操作所有細(xì)節(jié)這一特點(diǎn)离例。由于瀏覽器自動(dòng)發(fā)送會(huì)話cookie等認(rèn)證憑證换团,導(dǎo)致攻擊者可以創(chuàng)建惡意的web頁(yè)面來(lái)產(chǎn)生偽造請(qǐng)求。這些偽造的請(qǐng)求很難和合法的請(qǐng)求區(qū)分開(kāi)
危害如下:
攻擊者可以讓受害者用戶修改任何允許修改的數(shù)據(jù)宫蛆,執(zhí)行任何用戶允許的操作艘包,例如修改密碼,登錄注銷等
如何防范:
1.給每個(gè)HTTP請(qǐng)求添加一個(gè)不可預(yù)測(cè)的令牌耀盗,并保證該令牌對(duì)每個(gè)用戶會(huì)話來(lái)說(shuō)是唯一的想虎。
最好的辦法就是將獨(dú)有的令牌包含在隱藏字段中,通過(guò)HTTP請(qǐng)求發(fā)送袍冷,避免在URL中暴露出來(lái)
2.要求用戶重新認(rèn)證或判斷他們是一個(gè)真實(shí)德用戶
TOP6-安全誤配置
安全配置錯(cuò)誤可以發(fā)生在一個(gè)應(yīng)用程序堆棧的任何層面磷醋,包括平臺(tái),web服務(wù)器胡诗,應(yīng)用服務(wù)器邓线,數(shù)據(jù)庫(kù)淌友,架構(gòu)和自定義的代碼。攻擊者通過(guò)訪問(wèn)默認(rèn)賬戶骇陈,未使用的網(wǎng)頁(yè)震庭,未安裝的補(bǔ)丁的漏洞,未被保護(hù)的文件和目錄等你雌,以獲得對(duì)系統(tǒng)為授權(quán)的訪問(wèn)
危害如下器联;
系統(tǒng)可能在未知的情況下被完全攻破,用戶數(shù)據(jù)可能隨著時(shí)間被全部盜走或篡改婿崭。甚至導(dǎo)致整個(gè)系統(tǒng)被完全破壞
如何防范:
1.自動(dòng)化安裝部署
2.及時(shí)了解并部署每個(gè)環(huán)節(jié)的軟件更新和補(bǔ)丁信息
3.實(shí)施漏洞掃描和安全審計(jì)
TOP7-限制URL訪問(wèn)失敳ν亍(缺少功能級(jí)訪問(wèn)控制)
這個(gè)漏洞也是與認(rèn)證相關(guān)的,這種漏洞具體是指在系統(tǒng)已經(jīng)對(duì)url的訪問(wèn)做了限制的情況下氓栈,但這種限制并沒(méi)有生效渣磷。常見(jiàn)的例子是系統(tǒng)沒(méi)有對(duì)用戶進(jìn)行角色的檢查,以及用戶通過(guò)修改URL的action并指向未被授權(quán)頁(yè)面就能訪問(wèn)該頁(yè)面同樣是個(gè)漏洞
危害如下:
攻擊者很容易就能把網(wǎng)址改成享有特權(quán)的網(wǎng)頁(yè)授瘦,這樣就可以使用匿名或普通用戶訪問(wèn)未授保護(hù)的私人頁(yè)面醋界,從而提升未授權(quán)功能和相關(guān)數(shù)據(jù)信息
如何防范:
1.檢查管理權(quán)限的過(guò)程并確保能夠容易進(jìn)行升級(jí)和審計(jì)
2.默認(rèn)缺省情況下,應(yīng)該拒絕所有訪問(wèn)的執(zhí)行權(quán)限提完。對(duì)于每個(gè)功能得訪問(wèn)形纺,需要明確的角色授權(quán)
3.檢查每個(gè)功能分配的權(quán)限合理有效
TOP8-未驗(yàn)證的重定向和轉(zhuǎn)發(fā)
在Web應(yīng)用中重定向是極為普通的,并且通常重定向所引發(fā)的目的是帶有用戶輸入?yún)?shù)的目的url徒欣,而如果這些重定向未被驗(yàn)證逐样,那么攻擊者就可以引導(dǎo)用戶訪問(wèn)他們想要用戶訪問(wèn)的站點(diǎn)
同樣,轉(zhuǎn)發(fā)也是極為普遍的帚称,本質(zhì)上轉(zhuǎn)發(fā)是在同一個(gè)應(yīng)用中對(duì)一個(gè)新頁(yè)面發(fā)送請(qǐng)求官研,并且有時(shí)是用參數(shù)來(lái)定義目標(biāo)頁(yè)面的。同樣闯睹,如果參數(shù)未被驗(yàn)證戏羽,那么攻擊者就可以利用其來(lái)繞過(guò)認(rèn)證或是授權(quán)檢查
危害如下:
攻擊者通過(guò)重定向可以試圖安裝惡意軟件或誘使受害人泄露密碼等銘感信息,通過(guò)轉(zhuǎn)發(fā)可以繞過(guò)訪問(wèn)限制
如何防范:
1.避免使用重定向和轉(zhuǎn)發(fā)
2.如果使用了楼吃,不要在確定目標(biāo)時(shí)涉及到用戶參數(shù)
3.如果無(wú)法避免使用用戶參數(shù)始花,則應(yīng)確保目標(biāo)參數(shù)值對(duì)于當(dāng)前用戶是有效的并已授權(quán)
如果是需要登錄的,可以從session當(dāng)中獲取登錄信息孩锡,然后判斷
TOP9-應(yīng)用已知脆弱性的組件
應(yīng)用程序使用帶有已知漏洞的組件會(huì)破壞應(yīng)用程序防御系統(tǒng)酷宵,可能導(dǎo)致嚴(yán)重的數(shù)據(jù)丟失或服務(wù)器接管
如何防范:
1.識(shí)別正在使用的組件和版本,包括所有的依賴
2.更新組件或引用的庫(kù)文件到最新
3.建立安全策略來(lái)管理組件的使用
TOP10-敏感信息暴露
這個(gè)好像沒(méi)什么可說(shuō)的躬窜,就注重對(duì)敏感數(shù)據(jù)的保護(hù)即可
2017新版:
A7 :“不充足的攻擊檢測(cè)與預(yù)防”:“大多數(shù)應(yīng)用和API缺乏基本的能力浇垦,來(lái)檢測(cè)、預(yù)防和響應(yīng)人工和自動(dòng)化攻擊荣挨。攻擊防護(hù)遠(yuǎn)不僅限于基本的輸入驗(yàn)證男韧,它還包含自動(dòng)檢測(cè)朴摊、記錄、響應(yīng)甚至阻止利用行為此虑。應(yīng)用程序所有者還需能快速部署補(bǔ)丁以防止攻擊甚纲。”
A10: “未受保護(hù)的API”:“現(xiàn)代的應(yīng)用常常涉及富客戶端應(yīng)用程序和API朦前,比如瀏覽器和移動(dòng)App中的JavaScript介杆,連接到其他某種API(SOAP/XML、REST/JSON韭寸、RPC春哨、GWT等)。這些APT通常未受保護(hù)且存在多種漏洞棒仍”ィ”
附上思維導(dǎo)圖: