2024年湖北省楚慧杯初赛 部分Misc
特殊流量2
蚁剑流量,流量中找到www.zip,导出得到
my_rsa.php
<?php
$cmd = @$_POST['ant'];
$pk = <<<EOF
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCfhiyoPdM6svJZ+QlYywklwVcx
PkExXQDSdke4BVYMX8Hfohbssy4G7Cc3HwLvzZVDaeyTDaw+l8qILYezVtxmUePQ
5qKi7yN6zGVMUpQsV6kFs0GQVkrJWWcNh7nF6uJxuV+re4j+t2tKF3NhnyOtbd1J
RAcfJSQCvaw6O8uq3wIDAQAB
-----END PUBLIC KEY-----
EOF;
$cmds = explode("|", $cmd);
$pk = openssl_pkey_get_public($pk);
$cmd = '';
foreach ($cmds as $value) {
if (openssl_public_decrypt(base64_decode($value), $de, $pk)) {
$cmd .= $de;
}
}
foreach($_POST as $k => $v){
if (openssl_public_decrypt(base64_decode($v), $de, $pk)) {
$_POST[$k]=$de;
}
}
eval($cmd);
得到密钥,直接用neta分析
发现有一个secret文件,其中i和7被替换为了x,文件内容:xx34d619x1brxgd9mgd4xzxwxytv669w
那么x就可能是i可能是7可能是x
又输出了secret文件的md5值
import hashlib
def generate_combinations(s, index=0, current=""):
if index == len(s):
md5_hash = hashlib.md5(current.encode()).hexdigest()
if md5_hash == "edffd5be04cc060e343cad479a8b845c":
print(f"Matching string: {current}")
return
if s[index] == 'x':
generate_combinations(s, index + 1, current + 'i')
generate_combinations(s, index + 1, current + '7')
generate_combinations(s, index + 1, current + 'x')
else:
generate_combinations(s, index + 1, current + s[index])
input_string = "xx34d619x1brxgd9mgd4xzxwxytv669w\n"
generate_combinations(input_string)
还得带上回车去爆破,得到
i734d619i1brigd9mgd4xz7w7ytv669w
找到flag.txt
AES解密得到
Delta Alpha Sierra Charlie Tango Foxtrot Three Foxtrot Delta Three Four Bravo Five Nine Dash Four Echo Nine Delta Dash Four Three Nine Zero Dash Nine Two Seven Bravo Dash One Three Four Six Delta Five Three Six Four Delta Nine Nine
北约字母,百度到下表,替换的到
-.. -. ... -.-. - ..-. ...-- ..-. -.. ...-- ....- -... ..... ----. Dash ....- . ----. -.. Dash ....- ...-- ----. ----- Dash ----. ..--- --... -... Dash .---- ...-- ....- -.... -.. ..... ...-- -.... ....- -.. ----. ----.
没找到Dash,根据uuid特性猜测是-
先解莫斯
然后加入-,得到
DNSCTF3FD34B59-4E9D-4390-927B-1346D5364D99
flag:DNSCTF{3fd34b59-4e9d-4390-927b-1346d5364d9}
马赛克
vol取证,发现存在flag.zip
导出,发现数据有错误
根据题目描述,需要找出密码,直接搜password发现
导出,是一张图片
没发现别的了,看一下iehistory发现
查看Documents目录下的文件
打乱.txt,导出
f = open('./flag.zip', 'rb').read()
n = open('./new.zip', 'wb')
L = len(f)
for i in range(int(L/10)):
n.write(f[5*i :5*i+5])
n.write(f[L-5*i-5:L-5*i])
让gpt写一个恢复脚本
open('./file.0x3e39ff20.0xfa80027834e0.DataSectionObject.flag.zip.dat', 'rb') as n:
new_data = n.read()
L = len(new_data)
original data
original_data = bytearray(L)
num_segments = L // 10
for i in range(num_segments):
original_data[5*i:5*i+5] = new_data[10*i:10*i+5]
original_data[L-5*i-5:L-5*i] = new_data[10*i+5:10*i+10]
with open('./flag.zip', 'wb') as f:
f.write(original_data)
得到
有冗余数据,bandzip打开也报错,直接用winrar修,再用bandzip打开,得到
回到马赛克,瞪眼法加上一直放大缩小图片,隐约能看出前面两个字符为IL,后面两个字符为CS
PS调一下
L和第三个字符感觉有点连上,像个U,第四个字符根据轮廓感觉是K。猜测是ILIKE,根据轮廓感觉中间像有个O,猜是forensics,我爱取证
所以密码是ILIKEFORENSICS
解压得到
解码