真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

CSRF與XSS-創(chuàng)新互聯(lián)

Wordpress(低版本)與XSSer

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:申請域名、雅安服務(wù)器托管、營銷軟件、網(wǎng)站建設(shè)、繁昌網(wǎng)站維護、網(wǎng)站推廣。 CSRF與XSS 復(fù)現(xiàn)過程

首先在虛擬機上搭建wordpress

CSRF與XSS

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

CSRF與XSS

添加用戶,并利用burp抓包

CSRF與XSS

使用burp 自帶的csrf插件

CSRF與XSS

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

CSRF與XSS

在瀏覽器中打開,測試

CSRF與XSS

CSRF與XSS 

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

CSRF與XSS

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

那么如何與XSS漏洞結(jié)合起來實現(xiàn)呢?

搭建XSSer平臺并且新建一個項目,根據(jù)抓包的內(nèi)容編寫項目代碼

CSRF與XSS

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

CSRF與XSS

留言成功之后如下圖:當管理員查看留言時,就會觸發(fā)XSS漏洞,執(zhí)行創(chuàng)建用戶的操作

CSRF與XSS

抓包查看:

CSRF與XSS

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

CSRF與XSS

CSRF與XSS 修復(fù)建議

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

  • 驗證 HTTP Referer 字段

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

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

(1)驗證 HTTP Referer 字段

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

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

http://www.gendan5.com

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

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

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

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

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

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

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

CSRF與XSS 總結(jié)思考

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

  • 配合XSS漏洞可造成蠕蟲

  • 更改用戶密碼

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

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


當前標題:CSRF與XSS-創(chuàng)新互聯(lián)
文章位置:http://weahome.cn/article/ddispj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部