owasp top10

top 1–注入

  1. 介紹
    簡單來說,注入就是應用程序缺少對輸入進行安全性檢查所引起的,攻擊者把一些包含指定的數據發給解釋器,解釋器會把收到指定的數據轉化成指令執行。常見的注入包括sql注入,os ,ldap 等等,最常見的就是sql注入了。這種注入往往造成的危害很大,一般整個數據庫的信息都能被讀取或篡改。通過sql注入,攻擊者很有可能獲取更多的權限,包過管理員的權限。

  2. 危害
    注入能導致數據丟失或數據損害、缺乏審計或是拒絕服務。注入漏洞甚至可以完全控制主機。

  3. 防範
    使用安全的API,避免使用編輯器。
    對輸入的特殊字符進行Escape轉義處理。
    使用白名單來規範劃的輸入驗證方法。

top 2–失效身份驗證和會話管理

  1. 介紹
    與驗證和會話管理相關的應用程序功能往往得不到正確的實施,這就導致攻擊者破話密碼、祕鑰、會話令牌或利用漏洞冒充其他用戶信息。
  2. 危害
    這些漏洞可能導致部分甚至全部賬戶遭受攻擊。一旦攻擊成功,攻擊者會執行合法用戶的一切操作。因此特權賬戶會造成更大的破壞。
  3. 防範
    使用內置的會話功能。
    通過認證問候:使用單一的入口點。
    確保一開始就登陸ssl保護的網頁。

top 3–跨站

  1. 介紹
    跨站腳本是最常見的web應用安全漏洞。當應用程序在發送給瀏覽器的頁面中包含用戶提供的數據但沒有經過適當驗證或者轉譯,就會導致跨站腳本漏洞。

  2. 危害
    攻擊者能在受害者的瀏覽器中執行腳本劫持用戶會話、迫害網站、插入惡意內容、重定向用戶、使用惡意軟件劫持用戶瀏覽器等等。

  3. 種類
    已知有三種著名漏洞:1.存儲式 ,2. 反射式 ,3.基於DOM。
    反射式跨站腳本通過測試或代碼分析很容易找到。

  4. 防範
    驗證輸入:檢查每個輸入的有效性。

top 4–不安全的對象直接引用

  1. 介紹
    所謂的“不安全的對象直接引用”,是指一個已經授權的用戶,通過更改訪問時的一個參數,從而訪問到原本其並沒有得到授權的對象。Web應用程序往往在生成web頁面時會用他真實的名字,並不會對所有的目標對象訪問時來檢查用戶權限,所以這就造成了不安全對象直接引用的漏洞。

  2. 危害
    這種漏洞能危害所有參數引用的所有數據。除非名字空間很稀疏,否則攻擊者很容易訪問該類型的所有數據。

  3. 防範
    使用基於用戶或會話的間接對象訪問,這樣能訪問攻擊者直接攻擊未授權的資源。
    訪問檢查:對任何來自不受信任源所使用的所有直接對象引用都進行訪問控制檢測,這樣才能確保用戶對要求的對象有訪問權限。
    避免在URL或網頁中直接引用內部文件名或者數據庫關鍵字。
    可使用自定義的映射名稱來取代直接對象名。
    鎖定網站服務器上的所有目錄和文件夾,設置訪問權限。
    驗證用戶輸入和URL請求,拒絕包含/或…的請求。

top 5–僞造跨站請求(CSRF)

介紹:1.跨站請求僞造CSRF,是利用了網站允許攻擊者預測特定的所有細節這一特點。由於瀏覽器自動發送會話cookie等認證憑證,導致攻擊者能夠創建惡意的web頁面來產生僞造請求。這些僞造的請求很難和合法的請求分開。
2.CSRF聽起來像跨站腳本(XSS),但它與XSS不同,並且攻擊方式幾乎相左。XSS利用站點內的新信任用戶,而CSRF則通過僞裝來自信任用戶的請求來利用信任的網站。
危害:攻擊者能夠讓受害者修改任何允許修改的數據,執行任何用戶允許的操作。例如修改密碼等一系列操作。

CSRF分類
1.GET型:如果一個網站某個地方的功能,比如用戶修改郵箱密碼是通過GET請求進行修改的。例:user.php?
id=123&[email protected],這個鏈接請求的是用戶ID=123將郵箱密碼改爲[email protected]。當我們把這個鏈接修改爲/user.php? id=123&[email protected],然後通過各種手段給被攻擊者,誘使被攻擊者點擊所發鏈接,當用戶剛好在訪問這個網站,他同時又點擊了這個鏈接,那麼就僞造成功,密碼就修改成[email protected]

2.POST型:在一般用戶眼中,點擊網頁–打開學習視頻–購買學習視頻是一個正常不過的流程。可是在攻擊者的眼中就不是那麼回事了。在不正常的情況下,是在開發者安全意識不足所造成的。攻擊者在購買處抓到購買時候網站處理購買用戶資金的地址。通過提交表單,處理表單購買信息,僞造一個鏈接,用戶訪問後,表單自動提交,相當於用戶完成一次POST的操作,導致受害者資金扣除。

CSRF漏洞挖掘
1.抓取一個正常的請求的數據包,如果沒有Referer的字段和token,那麼極有可能存在CSRF漏洞。
2.如果有referer字段,但是去掉referer字段後在提交,如果提交有效,那麼基本可以確定存在CSRF漏洞。
3.利用工具進行CSRF檢測。例:CSRFTESTER等。

使用burpsuite快速生成CSRF poc
當我們發現一個頁面存在CSRF漏洞後,我們可以通過burpsuite快速生成攻擊代碼,然後複製,保存在本地。當受害者點擊就執行了CSRF代碼。

防禦手段
1.驗證http referer中記錄的請求來源地址是否爲合法用戶地址(即最開始用戶登錄的來源地址)。當然這是最基本的防禦,因爲這個地址是可以人爲篡改的。
2.重要功能使用動態驗證碼進行CSRF防護。
3.通過token方式進行CSRF防護,在服務器端對比POST提交參數的token與session中綁定的token是否一致,驗證CSRF攻擊
(1)在session中綁定token。如果不能保存到服務器端session中,則可以替代爲保存到cookie裏。
(2)在from表單中自動填入token字段。
(3)在HTTP請求中自動添加token。

top 6–安全誤配置

介紹:安全配置錯誤可以發生在一個應用程序堆棧的任何層面,包括平臺、web服務器、應用服務、數據庫、架構和自定義代碼。攻擊者通過訪問默認賬戶、未使用的網頁、未安裝補丁的漏洞、未被保護的文件和目錄等,以獲得對系統未授權的訪問。

危害:系統可能存在未知的情況下被完全公婆,用戶數據可能隨着時間推移而被全部盜走或者篡改。甚至有時,或導致整個系統被破壞。

檢測場景:1.應用程序啓用或者安裝了不必要的安全功能。
2.默認賬戶名和密碼沒有修改。
3.應用軟件已經過期或易受攻擊。
4.應用程序服務器未進行安全配置。

防禦措施:1.配置所有的安全機制。
2.最小原則,關掉或限制不使用的服務。
3.修改默認賬戶信息。
4.使用日誌和警報。
5.回顯信息不顯示任何與實際錯誤相關的信息。
6.西安西哈和修復安全配置項。

top 7–限制URL訪問失敗(缺少功能級訪問控制)

介紹:這個漏洞事實上也是與認證相關的,與我們前面提到的top4不安全的直接對象引用也是類似的,不同在於這個漏洞是說系統已經對URL的訪問做了限制,單這種限制缺實際並沒有生效。常見的錯誤是,我們在用戶認證後顯示給用戶認證過的頁面和菜單選項,而實際上這些僅僅是表示層的訪問控制而不能真正生效,攻擊者能夠很容易的就僞造請求直接訪問未被授權的頁面。

危害:攻擊者很容易就按網址改成香油特權的頁面,這樣就可以使用匿名或普通用戶訪問未受保護的私人頁面,從而提升未授權功能和相關數據信息。

測試方法:1.保證合法授權用戶可以訪問成功。 2.限制非法未授權用戶訪問。

危害:攻擊者能夠訪問到正常用戶訪問的頁面,將對所有用戶的安全問題造成威脅。

防禦措施:1.設計嚴格的權限控制系統,對於每個請求和URL都要進行校驗和權限確認,防止非法請求被執行。
2.對於每個功能的訪問,都要有明確的角色授權,採用過濾器的方式校驗每個請求的合法性。
3.實現web訪問的ip白名單列表,禁止不可信的ip訪問web系統。

top 8–未驗證的重定向和轉發

介紹:在web應用中重定向是及其普遍的,並且通常重定向所引向的目的是帶有用戶輸入參數的目的URL,而如果這些重定向未被驗證,那麼攻擊者就可以引導用戶訪問他們所要用戶訪問的站點。同樣,轉發也是極爲普遍的,本質上轉發是在同一個應用中對衣蛾新頁面發送請求,並且有時是用參數來定義目標頁面的。同樣,如果參數未被驗證,那麼攻擊者可以利用其來繞過認證或是授權檢查。

危害:攻擊者通過重定向可以試圖安裝惡意軟件或者誘使受害人泄密密碼等敏感信息,通過轉發可以繞過訪問控制。

重定向的幾種方式
1.手工重定向:點擊href鏈接來跳轉到新頁面
2.響應狀態碼重定向:301–永久重定向;302–臨時重定向;
3.服務器端重定向:修改web服務器配置文件或腳本來實現重定向
4.meta refresh:利用HTTP的refre標籤或者響應偷refresh屬性來設置
5.客戶端跳轉:利用url參數重定向,控制不嚴可能導致用戶訪問惡意網站

防禦:重定向外部網站需要驗證是否在白名單,轉發內部網站要驗證是否有權限,有權限才能進行轉發。

top 9–應用一直脆弱性的組件

介紹:組件幾乎總是以全部的權限運行的。如果一個帶有漏洞的組件貝利用,這種攻擊可以造成更爲嚴重的數據丟失或服務器接管。應用程序使用帶來有一直漏洞的組件會破話應用程序防禦系統,並使一系列可能的攻擊和影響成爲可能。

防範
1.識別正在使用的組件和版本,包括所有依賴組件。
2.監控這些在公共數據庫中、項目的郵件列表、以及安全郵件列表的組件的安全性,並保持他們更新到最新。
3.簡歷安全策略來管理組件的使用,如果需要一定法人軟件開發實踐,通過安全測試,和可接受的許可證。

top 10–敏感信息泄露

介紹:由於管理員或技術人員等各種原因導致敏感信息泄露。許多web應用程序和api都無法正確保護敏感數據,攻擊者可以通過竊取或修改未加密的數據來進行詐騙、身份盜竊等違法行爲。未加密的敏感數據容易遭到破壞,所以,我們需要對敏感數據加密,包括:傳輸數據、存儲數據、交互數據。

檢測方法:手工挖掘和工具挖掘

防範
1.針對個人數據,必須加密存儲,使用加密算法
2.針對敏感數據傳輸,需要採用SSL加密通道
3.杜絕網站堆棧信息直接暴露在錯誤頁面上

發佈了5 篇原創文章 · 獲贊 6 · 訪問量 1220
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章