BUUCTF:bjdctf_2020_babyrop2(write up)

本文详细介绍了BJDCTF比赛中题目babyrop2的解题过程,从文件分析发现64位程序开启多种保护机制,到运行时的输入观察,再到使用IDA进行函数分析。通过利用gift函数的格式化字符串漏洞泄露信息,结合vuln函数的栈溢出漏洞,最终获取函数地址,完成漏洞利用。
摘要由CSDN通过智能技术生成

0x01 文件分析

在这里插入图片描述

64位程序,开启栈不可执行、canary、部分RELRO保护

0x02 运行

在这里插入图片描述

输入两次字符串

0x03 IDA

  • main函数
    在这里插入图片描述

调用了下面三个函数

  • init函数
    在这里插入图片描述

初始化,输出提示

  • gift函数
    在这里插入图片描述

存在格式化字符串漏洞

  • vuln函数
    在这里插入图片描述

存在栈溢出漏洞

0x04 思路

  • 开启canary保护

可利用gift函数的格式化字符串漏洞,泄露canary的值

  • canary
    在这里插入图片描述

gift函数中rbp-0x8的位置
在这里插入图片描述
得到偏移量为7

  • 没有system函数和"/bin/sh"

泄露了canary值后,可利用vuln函数的栈溢

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值