DreamCatcher Yan

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

通过系统调用open来查看flag

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


这段代码中while有一个无法退出的循环,不能通过ROP获取flag,只能在代码中执行open函数。
我们希望构造这样的代码来拿到flag:

int fd = open("flag", READONLY);
read(fd, buf, 100);
print(buf);

在程序中寻找可以利用的修改rax、rdi、rsi、rdx的语句(64位程序通过寄存器传参,rax用于系统调用):

具体能利用的地方在:
0x4008a1 : pop rsi ; pop r15 ; ret
0x4008a3 : pop rdi ; ret
0x4006fe : pop rdx ; ret
0x4006fc : pop rax ; ret
0x4008ae : add byte ptr [rax], al ; ret

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

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入门
国密算法SM3(杂凑算法) 椭圆曲线密码学(ECC)原理 [转]提问的智慧(How To Ask Questions The Smart Way) 分组密码 数据结构考完,想了很多。 RSA加密算法原理

COPYRIGHT © 2020 DreamCatcher Yan. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

苏ICP备2020067253号