迅雷DownAndPlay.dll随迅雷起来后(不知道这个模块在从那个版本开始出现,我这是最新版本),在本地绑定36897端口,等待链接,
接受的数据格式是 XLDAP|key|value|XLDAP, 其中的 key 由预定义的几个, 这里实现溢出选择的是 savepath, 当value 超长时就会在 spintf 处发生溢出。 附件的 11.dat 是在 临时构造的 一份数据,可以使用 nc 看看效果,运行命令, 迅雷会因为异常退出。 有兴趣试着写出完整攻击代码。 ![]() C:/>nc 127.0.0.1 36897 <11.dat 23132CB6 8D45 A0 lea eax, dword ptr [ebp-60] 23132CB9 E9 84010000 jmp 23132E42 23132CBE 68 B4C61323 push 2313C6B4 ; ASCII "savepath" 23132CC3 57 push edi 23132CC4 FFD6 call esi 23132CC6 59 pop ecx 23132CC7 84C0 test al, al 23132CC9 59 pop ecx 23132CCA 74 5F je short 23132D2B 23132CCC 8B75 0C mov esi, dword ptr [ebp+C] 23132CCF 8B0D E0D21323 mov ecx, dword ptr [2313D2E0] 23132CD5 56 push esi 23132CD6 E8 EBE5FFFF call 231312C6 23132CDB 8B46 04 mov eax, dword ptr [esi+4] 23132CDE 8B0D B0E41323 mov ecx, dword ptr [<&MSVCP60.`std::>; MSVCP60.`std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Nullstr'::`2'::_C 23132CE4 85C0 test eax, eax 23132CE6 8BD1 mov edx, ecx 23132CE8 74 02 je short 23132CEC 23132CEA 8BD0 mov edx, eax 23132CEC 8B7F 04 mov edi, dword ptr [edi+4] 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" 23132D09 50 push eax 溢出发生位置 23132D0A FF15 54E51323 call dword ptr [<&MSVCRT.sprintf>] ; MSVCRT.sprintf 23132D10 8D85 5CFEFFFF lea eax, dword ptr [ebp-1A4] 23132D16 50 push eax 睡觉了。。 |