91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

CSRF與XSS

發布時間:2020-08-04 18:48:15 來源:ITPUB博客 閱讀:109 作者:專注的阿熊 欄目:數據庫

Wordpress(低版本)與XSSer

CSRF與XSS
復現過程

首先在虛擬機上搭建wordpress

CSRF與XSS

在wordpress的管理用戶界面,可以看到只有admin一個用戶

CSRF與XSS

添加用戶,并利用burp抓包

CSRF與XSS

使用burp 自帶的csrf插件

CSRF與XSS

會生成一個可以利用的CSRF頁面,更改標簽中的參數,防止參數重復添加失敗

CSRF與XSS

在瀏覽器中打開,測試

CSRF與XSS

CSRF與XSS  

可以看到,成功的添加了另一個用戶

CSRF與XSS

到此,就可以證明存在csrf漏洞并且已經成功利用csrf漏洞

那么如何與XSS漏洞結合起來實現呢?

搭建XSSer平臺并且新建一個項目,根據抓包的內容編寫項目代碼

CSRF與XSS

打開之前搭建的wordpress,將XSS項目的playload寫入評論中

CSRF與XSS

留言成功之后如下圖:當管理員查看留言時,就會觸發XSS漏洞,執行創建用戶的操作

CSRF與XSS

抓包查看:

CSRF與XSS

成功執行了XSS中的惡意代碼,添加了test5用戶

CSRF與XSS

CSRF與XSS
修復建議

目前防御 CSRF 攻擊主要有三種策略:

  • 驗證 HTTP Referer 字段

  • 在請求地址中添加 token 并驗證

  • 在 HTTP 頭中自定義屬性并驗證

(1)驗證 HTTP Referer 字段

       根據 HTTP 協議,在 HTTP 頭中有一個字段叫 Referer,它記錄了該 HTTP 請求的來源地址。在通常情況下,訪問一個安全受限頁面的請求來自于同一個網站,比如訪問

http://bank.example/withdrawaccount=bob&amount=1000000&for=Mallory,

http://www.gendan5.com

用戶必須先登陸 bank.example,然后通過點擊頁面上的按鈕來觸發轉賬事件。這時,該轉帳請求的 Referer 值就會是轉賬按鈕所在的頁面的 URL,通常是以 bank.example 域名開頭的地址。而如果黑客要對銀行網站實施 CSRF 攻擊,他只能在他自己的網站構造請求,當用戶通過黑客的網站發送請求到銀行時,該請求的 Referer 是指向黑客自己的網站。因此,要防御 CSRF 攻擊,銀行網站只需要對于每一個轉賬請求驗證其 Referer 值,如果是以 bank.example 開頭的域名,則說明該請求是來自銀行網站自己的請求,是合法的。如果 Referer 是其他網站的話,則有可能是黑客的 CSRF 攻擊,拒絕該請求。

       然而,這種方法并非萬無一失。Referer 的值是由瀏覽器提供的,雖然 HTTP 協議上有明確的要求,但是每個瀏覽器對于 Referer 的具體實現可能有差別,并不能保證瀏覽器自身沒有安全漏洞。使用驗證 Referer 值的方法,就是把安全性都依賴于第三方(即瀏覽器)來保障,從理論上來講,這樣并不安全。事實上,對于某些瀏覽器,比如 IE6 或 FF2,目前已經有一些方法可以篡改 Referer 值。如果 bank.example 網站支持 IE6 瀏覽器,黑客完全可以把用戶瀏覽器的 Referer 值設為以 bank.example 域名開頭的地址,這樣就可以通過驗證,從而進行 CSRF 攻擊。

(2)在請求地址中添加 token 并驗證

  CSRF 攻擊之所以能夠成功,是因為黑客可以完全偽造用戶的請求,該請求中所有的用戶驗證信息都是存在于 cookie 中,因此黑客可以在不知道這些驗證信息的情況下直接利用用戶自己的 cookie 來通過安全驗證。要抵御 CSRF,關鍵在于在請求中放入黑客所不能偽造的信息,并且該信息不存在于 cookie 之中。可以在 HTTP 請求中以參數的形式加入一個隨機產生的 token,并在服務器端建立一個攔截器來驗證這個 token,如果請求中沒有 token 或者 token 內容不正確,則認為可能是 CSRF 攻擊而拒絕該請求。

       這種方法要比檢查 Referer 要安全一些,token 可以在用戶登陸后產生并放于 session 之中,然后在每次請求時把 token 從 session 中拿出,與請求中的 token 進行比對,但這種方法的難點在于如何把 token 以參數的形式加入請求。對于 GET 請求,token 將附在請求地址之后,這樣 URL 就變成 http://url?csrftoken=tokenvalue。而對于 POST 請求來說,要在 form 的最后加上 <input type=”hidden” name=”csrftoken” value=”tokenvalue”/>,這樣就把 token 以參數的形式加入請求了。但是,在一個網站中,可以接受請求的地方非常多,要對于每一個請求都加上 token 是很麻煩的,并且很容易漏掉,通常使用的方法就是在每次頁面加載時,使用 javascript 遍歷整個 dom 樹,對于 dom 中所有的 a 和 form 標簽后加入 token。這樣可以解決大部分的請求,但是對于在頁面加載之后動態生成的 html 代碼,這種方法就沒有作用,還需要程序員在編碼時手動添加 token。

(3)在 HTTP 頭中自定義屬性并驗證

        這種方法也是使用 token 并進行驗證,和上一種方法不同的是,這里并不是把 token 以參數的形式置于 HTTP 請求之中,而是把它放到 HTTP 頭中自定義的屬性里。通過 XMLHttpRequest 這個類,可以一次性給所有該類請求加上 csrftoken 這個 HTTP 頭屬性,并把 token 值放入其中。這樣解決了上種方法在請求中加入 token 的不便,同時,通過 XMLHttpRequest 請求的地址不會被記錄到瀏覽器的地址欄,也不用擔心 token 會透過 Referer 泄露到其他網站中去。

CSRF與XSS
總結思考

       CSRF單純的利用起來其實是比較困難的,但是結合了XSS漏洞之后,它利用起來就相對來說比較簡單了。 從中我們不難看出CSRF的危害:

  • 配合XSS漏洞可造成蠕蟲

  • 更改用戶密碼

  • 更改(商城)用戶收貨地址

一切用戶可以操作的,黑客都可以操作,只需要構造PoC讓受害者點擊。 通俗點就是說,B以A的身份執行了A可以執行的操作,當然,這里B是黑客,A是受害者,由此可見,CSRF漏洞的危害也是顯著的,也是需要在安全工作中重視起來。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

五台县| 铅山县| 休宁县| 赤水市| 堆龙德庆县| 华池县| 南昌县| 柯坪县| 青州市| 外汇| 雷州市| 公主岭市| 萨嘎县| 灯塔市| 漯河市| 轮台县| 慈溪市| 郁南县| 洱源县| 临潭县| 佛坪县| 彭阳县| 西宁市| 临洮县| 沙坪坝区| 兴业县| 蓝山县| 湖口县| 鄄城县| 洪泽县| 榆社县| 丹凤县| 灌阳县| 双江| 桂东县| 垣曲县| 新津县| 舒兰市| 龙门县| 哈密市| 北辰区|