2023金砖CTF-决赛

2023金砖CTF-决赛

CTF

ctf部分总体还是比较难的,时间也短

WEB

前面的忘了,中间的忘了,后面的也忘了(不难,就是数组绕、%0a绕,rce绕)

MISC

MISC01

拿到一个wav

010打开发现有两个文件头52 49 46 46

img

foremost分离一下

img

00006606.wav用audacity打开,看频谱图得到pass:stego0626

img

尝试很多音频隐写的工具无果,再看回原始wav

在两个wav中间找到一段字节,仔细看是把文件头50 4b 03 04换成2e 2e 2e 2e的zip(这也是foremost分离不出来的原因)

img

拿出来,压缩包密码为stego0626

解压出来一段乱码

img

拿到cyberchef,magic得到flag(我不知道是我解压有问题还是这编码就是这样出的)

img

MISC02

拿到green.png

zsteg -a看到有zip

img

导出zsteg -E extradata:0 green.png > flag.zip 里面有个加密的rgb.txt 再回去看zsteg找到密码pass:h16lly81a

img

拿到一串rgb值,数量是66822个,分解一下

img

一系列尝试后转成259*259的图片

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from PIL import Image
import numpy as np

width,height = 259,259

im = Image.new("RGB", (width, height)) #创建图片
file = open('rgb.txt') #打开rbg值的文件
#通过每个rgb点生成图片
for i in range(0, width):
for j in range(0, height):
line = file.readline().replace('(','').replace(')','').replace('\n','') #获取一行的rgb值
rgb = line.split(",") #分离rgb,文本中逗号后面有空格
try:
im.putpixel((i, j), (int(rgb[0]), int(rgb[1]), int(rgb[2]))) #将rgb转化为像素
except:
pass

im.save("flag.png") #im.save('flag.jpg')保存为jpg图片

隐约看出有flag,仔细观察发现应该是宽太短了,应该要为高的2倍

img

尝试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from PIL import Image
import numpy as np

width,height = 259,518

im = Image.new("RGB", (width, height)) #创建图片
file = open('rgb.txt') #打开rbg值的文件
#通过每个rgb点生成图片
for i in range(0, width):
for j in range(0, height):
line = file.readline().replace('(','').replace(')','').replace('\n','') #获取一行的rgb值
rgb = line.split(",") #分离rgb,文本中逗号后面有空格
try:
im.putpixel((i, j), (int(rgb[0]), int(rgb[1]), int(rgb[2]))) #将rgb转化为像素
except:
pass

im.save("flag.png") #im.save('flag.jpg')保存为jpg图片

img = im.transpose(Image.FLIP_LEFT_RIGHT)
img.save('re_flag.png')

得到

img

data_sec

Ant_Pro

蚁剑流量

简单看了一下有10个左右的包,其中有一个是有个zip的

定位到stream 30,有一串hex

img

转一下得到蚁剑的加密器源码,可以看到key是session的前16位,AES-128-ECB加密

img

利用这些信息可以解开数据包的请求与响应包

img

定位到stream 20stream 28

stream 20的http流保存为jt.zip(注意不要用tcp,会有多余的分块传输的字节)

img

stream 28响应解密一下

img
img
img

得到压缩包密码,解压得到jt.png

zsteg得到flag

img

ezPH

一个数据包

tcp流前15个都是这样的求离散对数问题

img

第16个包很大,加载慢,使用tshark导出

1
tshark -r ezPH.pcapng -qz follow,tcp,raw,15 > 1

两次hex转处理一下得到pdf头的文件

img

Pohlig-Hellman算法

img

后面不会了,交给队友

AWD

D盾扫一下

img

漏洞1

先看/var/www/html/classes/.cuppa.php

冰蝎马,默认密钥,密码为cuppa

img
img

漏洞2

/var/www/html/alerts/alertConfigField.php

include导致的任意文件读取

img

漏洞验证

img

漏洞3

/var/www/html/alerts/alertLightbox.php

include导致的任意文件读取

img

漏洞验证

img

漏洞4

/var/www/html/components/table_manager/html/list_admin_table.php

create_function的rce(有$cuppa->user->valid("admin_login");要登录后台)

img

漏洞验证:

本地环境有问题,暂时无法验证,但是漏洞是存在的

漏洞5

/var/www/html/templates/default/html/windows/right.php

include导致的任意文件读取

img

漏洞验证

img

漏洞6

/var/www/html/js/filemanager/api/index.php

目录穿越+删除文件+任意文件重命名+copy文件任意文件读取,参考https://github.com/CuppaCMS/CuppaCMS/issues/28

img

漏洞7

/var/www/html/api/index.php

sql注入导致rce,参考https://github.com/CuppaCMS/CuppaCMS/issues/36

img

漏洞8

/var/www/html/api/generic.php

sql注入

img

漏洞9

/var/www/html/classes/ajax/Functions.php

saveConfigData函数中代码可修改Configuration.php可导致写入webshell,具体参考https://github.com/CuppaCMS/CuppaCMS/issues/29

img

总结

ctf部分还是稍微可惜了一些,多10分钟可能就能拿多几分了

awd纯没经验,被打烂了

ps:awd漏洞没有复现的要么是本地环境有问题要么是可能没有这个漏洞


2023金砖CTF-决赛
http://example.com/2023/11/21/2023金砖决赛CTF/
作者
dddkia
发布于
2023年11月21日
许可协议