Существует ли подобный эксплойт вообще? На большинстве сайтах связанных с информационной безопасностью, лишь только косвенно упоминают, что некая уязвимость относится также и к XP SP2 с возможностью выполнения произвольного кода,а пример эксплойта всегда выкладывают для более старых версий Windows, в основном для WINDOWS 2000, которые уже редко кем используются. В Win XP SP2 в библиотеке NETAPI32.DLL - функция Netpwpathcanonicalize содержит уязвимый код, который может использоваться для переполнения буфера в стековом кадре и как следствие выполнение произвольного кода. Вызов функции NetpwPathcanonicalize возможен по сети. Фрагмент уязвимого кода: 5BD5A44C > 85FF TEST EDI,EDI 5BD5A44E . 0F84 9F7B0000 JE netapi32.5BD61FF3 5BD5A454 . 50 PUSH EAX ; /src 5BD5A455 . 57 PUSH EDI ; |dest 5BD5A456 . FF15 3010D55B CALL DWORD PTR DS:[<&msvcrt.wcscpy>] ; \wcscpy 5BD5A45C . 66:85DB TEST BX,BX 5BD5A45F . 59 POP ECX 5BD5A460 . 59 POP ECX 5BD5A461 . 0F85 35E30000 JNZ netapi32.5BD6879C 5BD5A467 > 33C0 XOR EAX,EAX 5BD5A469 . 40 INC EAX 5BD5A46A > 5F POP EDI 5BD5A46B . 5E POP ESI 5BD5A46C . 5B POP EBX 5BD5A46D . C9 LEAVE 5BD5A46E . C2 0400 RETN 4 Функция служит для приведения пути к каноническому виду ("c:\1\2\3\..\..\ =c:\1 "). Путь подобный "\..\..\xxxx" вызовет ошибку данной функции. Код брал из netapi32.dll версия 5.1.2600.2180 (стандартная непропатченная XP SP2) Какие соображения?
Зависит от того, куда указывает edi и возможно ли контролировать eax. Если edi указывает на статическую область памяти, например, в стековый кадр, а eax содержит адрес строки, которую мы передаем, то тогда да, можно устроить переполнение буфера.