BUUCTF-Misc
1.Mysterious
描述:自从报名了CTF竞赛后,小明就辗转于各大论坛,但是对于逆向题目仍是一知半解。有一天,一个论坛老鸟给小明发了一个神秘的盒子,里面有开启逆向思维的秘密。小明如获至宝,三天三夜,终于解答出来了,聪明的你能搞定这个神秘盒子么? 注意:得到的 flag 请包上 flag{} 提交
是一个exe程序文件,fa52d50e-dcbc-4a74-ad68-2050a68da21c.exe

翻译过来是让我们输入密码,面对exe文件我们可以使用IDA_Pro_v7.0工具查看
先使用记事本打开,查看这个exe是64位的还是32位的

这边显示PE是32位,用ida.exe打开,进去后Shift+F12查看字符

按第一个well done,找到这个界面

其中出现4个sub_401090
接下来,在左边的函数窗口找的sub_401090

然后点击,F5反汇编查看伪C代码
int __stdcall sub_401090(HWND hWnd, int a2, int a3, int a4)
{char v5; // [esp+50h] [ebp-310h]CHAR Text[4]; // [esp+154h] [ebp-20Ch]char v7; // [esp+159h] [ebp-207h]__int16 v8; // [esp+255h] [ebp-10Bh]char v9; // [esp+257h] [ebp-109h]int v10; // [esp+258h] [ebp-108h]CHAR String; // [esp+25Ch] [ebp-104h]char v12; // [esp+25Fh] [ebp-101h]char v13; // [esp+260h] [ebp-100h]char v14; // [esp+261h] [ebp-FFh]memset(&String, 0, 0x104u);v10 = 0;if ( a2 == 16 ){DestroyWindow(hWnd);PostQuitMessage(0);}else if ( a2 == 273 ){if ( a3 == 1000 ){GetDlgItemTextA(hWnd, 1002, &String, 260);strlen(&String);if ( strlen(&String) > 6 )ExitProcess(0);v10 = atoi(&String) + 1;if ( v10 == 123 && v12 == 120 && v14 == 122 && v13 == 121 ){strcpy(Text, "flag");memset(&v7, 0, 0xFCu);v8 = 0;v9 = 0;_itoa(v10, &v5, 10);strcat(Text, "{");strcat(Text, &v5);strcat(Text, "_");strcat(Text, "Buff3r_0v3rf|0w");strcat(Text, "}");MessageBoxA(0, Text, "well done", 0);}SetTimer(hWnd, 1u, 0x3E8u, TimerFunc);}if ( a3 == 1001 )KillTimer(hWnd, 1u);}return 0;
}
主要逻辑:
-
获取对话框 ID 为 1002 的文本框内容
-
检查输入字符串长度不能超过 6 个字符
-
将输入字符串转换为整数并加 1,存储在
v10中 -
关键验证条件:
v10 == 123 && v12 == 120 && v14 == 122 && v13 == 121
字符值分析:
-
v10 = 123→ 对应 ASCII 字符{ -
v12 = 120→ 对应 ASCII 字符x -
v13 = 121→ 对应 ASCII 字符y -
v14 = 122→ 对应 ASCII 字符z
输入推导:
由于 v10 = atoi(&String) + 1 = 123,所以:
-
atoi(&String) = 122 -
用户需要输入
"122xyz" -

-
拿到flag:flag{123_Buff3r_0v3rf|0w}
2.zip
描述:拼在一起解下base64就有flag 注意:得到的 flag 请包上 flag{} 提交
下载题目,里面是多个zip压缩包文件

看到那么多zip加密文件我第一时间想到了用Ziperello.exe
打开,显示

这是伪加密吧,将文件拖入随波逐流自动修复伪加密,但用修复后的文件,怎么爆破都不行
回归原文件再用爆破

居然出来了,可恶密码不正确,
接下来试试CRC爆破,这么多自然要用脚本(在网上找的脚本)
import zipfile
import string
import binascii
string=string.printable
crc_s=''
for i in range(0,68):zip_name= r"E:\CTF练习\b2ca8799-13d7-45df-a707-94373bf2800c/out" + str(i) + ".zip" #读每个文件zip_crc=zipfile.ZipFile(zip_name,'r').getinfo('data.txt').CRC
#读crcprint(zip_crc)
for a in string:
for b in string:
for c in string:
for d in string:s=a+b+c+d
#进行爆破
if zip_crc == (binascii.crc32(s.encode())):print(s)crc_s+=s
print(crc_s)
得到一串base64字符串
z5BzAAANAAAAAAAAAKo+egCAIwBJAAAAVAAAAAKGNKv
+a2MdSROzAwABAAAAQO1UCRUUy91BT5UkSNPoj5hFEVFBRvefHSBCfGOruGnKnygsMyj8SBaZHxsYHY84LEZ24cXtZO1y3k1K1YJOvpK9HwqUzb6u9z8igEr3dCCQLQAdAAAAHQAAAAJiOefVT2MdSROwCAAgAAAAZmxhZy50eHQAsDRpZmZpeCBOaGUgZmIsZSBhbmQgZ2VOIHRoZSBmbGFnxD17AEAHAA==
base64解码,再用010打开,发现了rar文件的文件尾,但是却没有文件头
![]()
添加文件头就行了rar文件头是52 61 72 21 1A 07 00
在头部插入7个字节并修改为52 61 72 21 1A 07 00
修改完后将后缀改为rar文件

flag在备注里
flag{nev3r_enc0de_t00_sm4ll_fil3_w1th_zip}
3.[WUSTCTF2020]girlfriend
描述:I want a girl friend !!!
将结果用wctf2020{}再提交
拿到文件里面有一段音频girlfriend.wav,听了下是摩斯密码,这不撞枪口上了嘛,打开随波逐流打开音频wav摩斯电码解析
拿到图片

好吧,不是摩斯密码但更像拨号声
使用DTMF拨号音识别器
https://gitcode.com/open-source-toolkit/e3e45

按照手机9键输入
打开手机九键输入法,'999'对应9键下面第三个字母'y',其他同理
最终获得字符串套上flag{},得到flag{youaremygirlfriends}
4.[SUCTF2018]followme
拿到题目是pacpng文件,用Wireshark打开,把HTTP对象导出

保存到文件夹里,文件杂七杂八的很多
然后复制到kail虚拟机里,
在文件打开命令提示符,输入这串命令
grep -r 'CTF'
grep -r 'CTF' 命令会在当前目录及其所有子目录下的所有文件中,搜索并打印出所有包含字符串 CTF 的行。
flag{password_is_not_weak}
5.[DDCTF2018]流量分析
一个pacp文件,和一个提示
流量分析
200pt
提示一:若感觉在中间某个容易出错的步骤,若有需要检验是否正确时,可以比较MD5: 90c490781f9c320cd1ba671fcb112d1c
提示二:注意补齐私钥格式
-----BEGIN RSA PRIVATE KEY-----
XXXXXXX
-----END RSA PRIVATE KEY-----
在Wireshark打开文件导出对象


保存到一个文件夹并在(5).eml 发现密钥信息

根据题目提示,将密钥信息补齐私钥格式,并保存为一个TXT文档
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDCm6vZmclJrVH1AAyGuCuSSZ8O+mIQiOUQCvN0HYbj8153JfSQ
LsJIhbRYS7+zZ1oXvPemWQDv/u/tzegt58q4ciNmcVnq1uKiygc6QOtvT7oiSTyO
vMX/q5iE2iClYUIHZEKX3BjjNDxrYvLQzPyGD1EY2DZIO6T45FNKYC2VDwIDAQAB
AoGAbtWUKUkx37lLfRq7B5sqjZVKdpBZe4tL0jg6cX5Djd3Uhk1inR9UXVNw4/y4
QGfzYqOn8+Cq7QSoBysHOeXSiPztW2cL09ktPgSlfTQyN6ELNGuiUOYnaTWYZpp/
QbRcZ/eHBulVQLlk5M6RVs9BLI9X08RAl7EcwumiRfWas6kCQQDvqC0dxl2wIjwN
czILcoWLig2c2u71Nev9DrWjWHU8eHDuzCJWvOUAHIrkexddWEK2VHd+F13GBCOQ
ZCM4prBjAkEAz+ENahsEjBE4+7H1HdIaw0+goe/45d6A2ewO/lYH6dDZTAzTW9z9
kzV8uz+Mmo5163/JtvwYQcKF39DJGGtqZQJBAKa18XR16fQ9TFL64EQwTQ+tYBzN
+04eTWQCmH3haeQ/0Cd9XyHBUveJ42Be8/jeDcIx7dGLxZKajHbEAfBFnAsCQGq1
AnbJ4Z6opJCGu+UP2c8SC8m0bhZJDelPRC8IKE28eB6SotgP61ZqaVmQ+HLJ1/wH
/5pfc3AmEyRdfyx6zwUCQCAH4SLJv/kprRz1a1gx8FR5tj4NeHEFFNEgq1gmiwmH
2STT5qZWzQFz8NRe+/otNOHBR2Xk4e8IS+ehIJ3TvyE=
-----END RSA PRIVATE KEY-----
在这里输入txt文档确认保存

重新追踪TLS流

拿到flag:DDCTF{0ca2d8642f90e10efd9092cd6a2831c0}
