mailing list archives
Re: Re: Remote buffer overflow in httpdx
From: pankaj208 () gmail com
Date: 10 Oct 2009 02:58:51 -0000
The addr value used is required to reach the ret instruction. The value used 0x63b8624f lies in idata segment of n.dll
Note that in order to reach ret instruction,
value at addr+0x0e0f should be non-zero for if(isset(client->serve.redirect)) to succeed => 004069E1 CMP BYTE PTR
addr+0x0f24 should be writable for client->state = STATE_DONE to execute. => 00406AAF MOV DWORD PTR DS:[EAX+0F24],0
The other two addresses used are
ret1 = 0x64f8134b (pop ret in core.dll) to pop addr and return to ret2
ret2 = 0x7c874413 (jmp esp in kernel32.dll) to jump to shellcode following ret2.
Though I am able to get a shell, the retn/offsets used are not universal.