<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    CSRF 防護策略

    VSole2021-10-13 07:12:05

    什么是 CSRF

    CSRF(“跨站請求偽造”):攻擊者通過郵件、社區發帖等方式誘導受害者進入第三方網站,并且在第三方網站中向被攻擊網站發送跨站請求;這主要是利用了受害者在被攻擊網站已經獲取的登錄憑證(cookie),且 cookie 會自動附在對特定域名的請求里的瀏覽器特性,達到冒充用戶對被攻擊的網站執行某項操作(如指定受害者的郵箱賬戶自動將所有收到的郵件都轉發到攻擊者的郵箱里)的目的。

    幾種常見的攻擊類型

    GET 類型的 CSRF 攻擊

    GET 類型的 CSRF 攻擊非常容易實現,在<img>的 url 里構造惡意 URL 即可,用戶在任何頁面上只要加載了這個<img>,都相當于向該惡意 URL 發出了一次 GET 請求。

    POST 類型的 CSRF 攻擊

    這種類型的CSRF利用起來通常使用的是一個自動提交的表單:

    <form action="http://bank.example/withdraw" method=POST>
        <input type="hidden" name="account" value="xiaoming" />
        <input type="hidden" name="amount" value="10000" />
        <input type="hidden" name="for" value="hacker" />
    </form>
    <script> document.forms[0].submit(); </script> 
    

    超鏈接類型的 CSRF 攻擊

    跟上述兩種 CSRF 攻擊,超鏈接類型的 CSRF 攻擊需要誘導用戶主動點擊,所以需要一定的欺騙手段,用戶點擊超鏈接后會跳轉到攻擊者構建的一個惡意 URL 里,也相當于是執行了一次 GET 請求。

    CSRF的特點

    • CSRF(通常)發生在第三方域名,但如果被攻擊網站管控用戶內容不嚴格的話,也有可能被發布惡意超鏈接等,這樣防護起來就更困難了,因為 referer 是來自于本身。
    • 攻擊利用受害者在被攻擊網站的登錄憑證,冒充受害者提交操作;而不是直接竊取或修改受害者的隱私數據。

    防護策略

    針對這兩點,我們可以專門制定防護策略,如下:

    • 阻止不明外域的訪問
    • 同源檢測
    • Samesite Cookie
    • 提交時要求附加本域才能獲取的信息
    • CSRF Token / 雙重 cookie 驗證
    • 在 LocalStorage 里存放登錄憑證

    同源檢測

    瀏覽器在發送請求的時候,會帶上originreferer這兩個 HTTP 頭部字段,一般情況下,我們可以在收到請求的時候校驗這兩個字段是否來自可信的域名。

    但是,雖然瀏覽器不允許修改originreferer,但是有可能由于瀏覽器本身的機制,或者是攻擊者刻意隱藏,導致請求里并沒有這兩個字段的信息,對于這種情況,可以考慮攔截掉。

    Samesite Cookie

    cookie 有個SameSite屬性可以防 CSRF 攻擊,使用SameSite=Lax后,從別的網站提交 POST 表單或發送 ajax 請求時都不會附上 cookie ,這樣就從根本上解決 CSRF 攻擊。但這個SameSite屬性只在現代瀏覽器上生效, IE 上是不支持的。

    CSRF Token

    除了傳統的 cookie 以外,我們可以添加一個額外的 token 作為用戶憑證。

    token 的生成

    • 全局共享:每次登錄的時候生成一個隨機數寫到 cookie 里;以后每次請求接口的時候,前端就從 cookie 中取出這個隨機數作為請求參數;后端校驗的時候只需要比對接口參數和 cookie 里的值就可以了,也不需要存 session 了(分布式 session 成本較高)。這種方法被稱為“雙重 cookie”。
    • 每個接口/表單獨立生成:針對每個接口/表單都生成一個獨立的 token ,“驗證碼”就屬于這種方案。在這種方案下,生成和儲存 token 的成本都比較高,建議只用于敏感接口。

    雙重 cookie 驗證

    所謂的雙重 cookie ,指的是在請求接口時,除了常規帶上 cookie 中的用戶憑證信息,如 session_id 外,還把 cookie 中的用戶憑證信息讀出來附在接口請求參數里;這種方案對比起 CSRF Token 方案來說,好在不需要生成額外的 token ,也同樣能夠起到防御 CSRF 攻擊的效果。

    在 LocalStorage 里存放登錄憑證

    CSRF 的關鍵是:cookie 是自動附在請求里的,那如果登錄憑證不是放在 cookie 而是 LocalStorage 里的話,比如使用 jwt 方案,那就從根本上破解了 CSRF 攻擊了,不過這樣的話,就需要防止 XSS 攻擊了。

    避免自己的網站被利用

    除了需要避免自己的網站被攻擊外,我們還需要避免自己的網站被利用來攻擊其它網站:

    • 嚴格限制用戶上傳的內容,如禁止上傳 HTML 文件
    • 不允許用戶直接引用外鏈的圖片
    • 對于用戶發布的超鏈接,需要對瀏覽者提醒這是屬于外鏈的超鏈接
    原文鏈接:https://segmentfault.com/a/1190000022984599?utm_source=sf-similar-article
    


    cookiecsrf
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    網站如何防止CSRF攻擊
    2021-11-12 07:20:53
    Cross-site request forgery 簡稱為“CSRF”,在CSRF的攻擊場景 中攻擊者會偽造一個請求(這個請求一般是一個鏈接),然后欺騙目標 用戶進行點擊,用戶一旦點擊了這個請求,整個攻擊就完成了。所以CSRF 攻擊也稱為"one click"攻擊。很多人搞不清楚CSRF的概念,甚至有時候 會將其和XSS混淆,更有甚者會將其和越權問題混為一談,這都是對原理沒 搞清楚導致的。
    服務器的相關信息(真實ip,系統類型,版本,開放端口,WAF等) 網站指紋識別(包括,cms,cdn,證書等),dns記錄 whois信息,姓名,備案,郵箱,電話反查(郵箱丟社工庫,社工準備等) 子域名收集,旁站,C段等 google hacking針對化搜索,pdf文件,中間件版本,弱口令掃描等 掃描網站目錄結構,爆后臺,網站banner,測試文件,備份等敏感文件泄漏等 傳輸協議,通用漏洞,ex
    今天分享一篇文章,涉及Redis未授權、SSRF漏洞、寬字節注入、JSONP劫持、CORS、CRLF注入等技能,并詳細講述了其原理和漏洞利用等。能夠回連且權限夠的話,寫crontab利用計劃任務執行命令反彈shell?圖片加載與下載:通過URL地址加載或下載圖片?禁用不需要的協議。禁止30x跳轉Java和PHP的SSRF區別PHP支持的協議:
    ?上整理的?試問題?全,有些 HW ?試的題,已經收集好了,提供給?家。
    1、短信轟炸 參數修改短信轟炸,可以直接修改手機號或者其他參數 Cookie短信轟炸 根據業務的判斷 2、手機號遍歷枚舉 繞過風控繼續遍歷 簡單遍歷結 繞過風控方法:修改下面參數,讓其構成一個正常參數從而實現繞過
    認證后命令執行Gitlab本身包含圖片上傳功能,所以按照上文構造思路,很容易實現RCE。
    滲透測試Tips
    2022-04-13 06:38:50
    知己知彼,百戰不殆1、如果提示缺少參數,如{msg:params error},可嘗使用字典模糊測試構造參數,進一步攻擊。
    邏輯漏洞挖掘技巧
    2023-02-02 11:36:32
    商戶網站接受異部參數的URL對應的程序中,要對支付公司返回的支付結果進行簽名驗證,成功后進行支付邏輯處理,如驗證金額、訂單信息是否與發起支付時一致,驗證正常則對訂單進行狀態處理或為用戶進行網站內入賬等。查看配置文件和一些過濾器,看是否對 URL 有相關的篩選操作。除了cookie之外,在請求中可能會帶一些參數,細覽下可能存在辨別信息的唯一值,來進行測試。
    CSRF 防護策略
    2021-10-13 07:12:05
    什么是 CSRFCSRF:攻擊者通過郵件、社區發帖等方式誘導受害者進入第三方網站,并且在第三方網站中向被攻擊網站發送跨站請求;這主要是利用了受害者在被攻擊網站已經獲取的登錄憑證,且 cookie 會自動附在對特定域名的請求里的瀏覽器特性,達到冒充用戶對被攻擊的網站執行某項操作的目的。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类