这道题一点也不难,不过遇到了一个之前没有注意到的知识

攻防世界 level2
直接溢出buf就可以覆盖返回地址

但是之前做的rop是64位,把参数存放在rdi然后调用system就行
32位的system参数放在栈中,,我以前简单的以为要执行的语句就放在栈顶

于是我把plt表中的地址放进去了,紧接着binsh地址,然后送出去后不对

看网上的wp说,他们用的是这个地址
攻防世界 level2
这个地址是call过去的,者就解释的通了
call之后eip入栈,然后存的才是binsh
所以binsh在esp-4这个位置

攻防世界 level2
这么一试就对了

记住记住

相关文章: