太难了,根本做不出
题目描述
lt is a misc quest absolutely.
https://bt.hzh.moe/
Flag format: TCTF{.*}
打开题目所给的网址
打开tencent ctf
发现有两个链接
一个是torrent(空文件,应该是种子文件)
第二个链接也打不开,不过可以看到解析解码发现seeding
查阅百度后,知道这是迅雷的链接,下载后,一直没有反应,停留在获取seed的界面
magnet:?xt=urn:btih:AQEQB7YBOGIMOQARSRXSHGULZUI25EY3&dn=Secret%20of%20TCTF%202021.7z
无法得到后,在网上寻找文章:找到这个
https://www.yeeach.com/post/1693
https://blog.csdn.net/weixin_30512089/article/details/98258860
info_hash又刚好是32位
由网上代码实现
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int main()
{
char *m="magnet:?xt=urn:btih:AQEQB7YBOGIMOQARSRXSHGULZUI25EY3";
const char *base32 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567";
int i = 0;
printf ("magnet:?xt=urn:btih:");
for (i = 20; i < 52; i += 4)
{
long b3 = strchr (base32, m[i + 0]) - base32;
long b2 = strchr (base32, m[i + 1]) - base32;
long b1 = strchr (base32, m[i + 2]) - base32;
long b0 = strchr (base32, m[i + 3]) - base32;
long b = b3 << 15 | b2 << 10 | b1 << 5 | b0;
printf ("%05X", b);
}
printf ("\n");
return 0;
}
转换成功
写脚本,把这个十六进制当做info_hash传入即可下载下来文件
得到TCTF.zip
得到一个TCTF.vhdx
挂载后发现hint.bat
我啪的一下很快啊,就点开了
打开编辑一看,哦,原来是假的hint,啥事都没有
另外发现一个hugo文件夹,里面是网站的源码,仔细寻找后,没有发现flag
用DiskGenius打开,翻找了几个地方也没有发现flag
就试着弄一下日志看看
发现出题人前前后后操控了该bat25次!(没用)
往下翻发现一堆不知道怎么来的文件名,于是进行分析
提取
RENAME_NEW_NAME+CLOSE 和 文件名字节=1的文件名,再按照RENAME_NEW_NAME+CLOSE后面的值发现好多重复,就开始尝试,直到
更完整的
f = open('1.csv').readlines()
res = []
for i in f:
if 'RENAME_NEW_NAME+CLOSE' in i and len(i.split('|')[0].split('.')[0])==1:
res.append(i.split('|')[4])
res = sorted(list(set(res)))
flag = {}
for j in res:
tmp = ''
for i in f:
if 'RENAME_NEW_NAME+CLOSE' in i and len(i.split('|')[0].split('.')[0]) == 1 and i.split('|')[4]==j:
tmp += i.split('|')[0].split('.')[0]
flag[j]=tmp
for i,j in flag.items():
print(i,j)
TCTF{B7UmV4x8JRHNKBCWxyevXt97tnQJtHjrZ}
综合评价
太难了