ctf|2021年第一届网刃杯WP misc4解+协议2解

气死我了气死我了气死我了
私钥头错了一直卡着,过了就好说多了。
注:encrypted ad1是赛后出的
MISC部分 签到
解压得到flag.txt和一段密文
Flag.txt是0宽
勾选BCDE(vim查看就可以看到要勾选这几个)、得到hint
ctf|2021年第一届网刃杯WP misc4解+协议2解
文章图片

myself居然是flag.txt的md5,我麻了
得到key:f71b6b842d2f0760c3ef74911ffc7fdb
最后测试rabbit,得到flag
ctf|2021年第一届网刃杯WP misc4解+协议2解
文章图片

flag{WelY0me_2_bOl3an}
baby-usb
键盘流量,完全按这篇即可
http://www.ga1axy.top/index.php/archives/22/
脚本直接用,步骤直接仿
得到
output :
CT[DEL]ONH[DEL]GRATUE[DEL]LATIOKE[DEL][DEL]NSONFINY[DEL]DINGMEBUTIWII[DEL]LLNS[DEL]OTTELLYOUWHERETQA[DEL][DEL]HEPZ[DEL]ASSWORDWS[DEL][DEL]OX[DEL]FWE[DEL]OD[DEL]RDDOC[DEL]CUMENTISGOARFV[DEL][DEL][DEL]NDFINDITAGAIN
发现删除的就是KEY,
The key is qazwsxedcrfv
即可打开word
flag{685b42b0-da3d-47f4-a76c-0f3d07ea962a}
Mspaint
上vol,imageinfo显示Win7,pslist发现用了cmd、画图、ie,cmd说他喜欢把图片截图下来,因此filescan |grep ‘png’
ctf|2021年第一届网刃杯WP misc4解+协议2解
文章图片

导出,发现文件只有一个hack
然后iehistory发现他访问了一个百度云盘链接,尝试用hack,成功。密码即hack。下载下来附件,居然有密码。
因此查看内存图,方法如此链接最后一个
https://blog.csdn.net/qq_42880719/article/details/117304586
ctf|2021年第一届网刃杯WP misc4解+协议2解
文章图片

因为我怕看错(主要是我眼比较瞎),所以我用zip爆破软件,用户自定义爆
我选择了8%R~sSA52!iqp,长度8位
ctf|2021年第一届网刃杯WP misc4解+协议2解
文章图片

解压之后,发现是python写的
于是直接逆
参考:https://blog.csdn.net/weixin_44362969/article/details/105616531 第一步:python pyinstxtravtor.py xxxxx.exe第二步:得到一个文件夹 其中有一个struct 跟 xxxxx(都没有后缀名) 十六进制查看struct,xxxxx。 会发现xxxxx比struct少了一行 这时将struct的那一行复制给xxxxx,然后xxxxx保存后添加后缀 xxxxx.pyc第三步:使用uncompyle6(我是kali) uncompyle6 xxxxx.pyc > xxxxx.py

得到
key = 'xxxxxxxxxxxxxxx' flag = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' datahttps://www.it610.com/article/= '' for i in range(0, len(flag)): data += hex(ord(flag[i]) ^ ord(key[(i % 15)]))[2:].zfill(2) else: print(data.upper()) datahttps://www.it610.com/article/= '12045014240343684450506E5E1E1C165D045E6B52113C5951006F091E4F4C0C54426A52466A165B0122'

然后现在需要找key,但是我们知道flag{开头,因此可以反推出key前5位
f = [18,4,80,20,36] keys = 'flag{' for i in range(len(f)): print(chr(f[i]^ord(keys[i])),end='')

得到th1s_,直接winhex搜key
ctf|2021年第一届网刃杯WP misc4解+协议2解
文章图片

keys = 'th1s_1s_th3_k3y' s = '12045014240343684450506E5E1E1C165D045E6B52113C5951006F091E4F4C0C54426A52466A165B0122' for i in range(len(s)//2): print(chr(int(s[i*2:i*2+2],16)^ord(keys[(i % 15)])),end='')

其实这里预期搜key应该是内存取证用screenshot指令,可以看到key
flag{20708c15-eb55-4cbc-930b-68de15c55b32}
encrypted ad1
【ctf|2021年第一届网刃杯WP misc4解+协议2解】积累了,学到了。是我傻了
下载下来文件名为ZW5jcnlwdA,解码之后得到encrypt
结合题目为ad1,所以应该是一个ad1的磁盘文件,并且加了密
查看文件尾,能够看到一串base
ctf|2021年第一届网刃杯WP misc4解+协议2解
文章图片

但很明显,这里转过来了,因此复制出来脚本转一下
s = '''==gqxEjgKtDzKI/D1ajBJIcxvLrijkUVc28YA3sTmY8Ac+r3fiDWl80a 44vbCwhxf8xwibLU6V1Ek31d7Q8W78VcYS+8Za1+IhG3hQ3NiLkbmqXUzb2M3Ou7 15G1xhX3lvi7Yj2CyTz68WQKzcoTvv4pZU+ISdQdNcoJEQSJhocwQAYgCUowrcMW AytwCo05H/yUQGTYA7acF8stHPUPScAoWdL/NW5FqASDAJRN7cM/3kR9GWzTw4WI mS36/C/94OBX1jJQVssAnd1NPD2F9EcX0GS2L9GIzdPyL5kZgZ8I2ShrzGo//HX5 G+IqTcKRqsB5TAOddb4lTp/r6XowLqAY9IZJAGoAR9kcrKNzwsJXn6HZN29ilFTC VnwRqDpDulps/c2fyInUqsHzZxctm5iiCZRiy1XjcyLrJtRKbTvyfXY1K7D1Q+dg eKbzHMihscHQiBL+WMG/3Drwsz/vQiXdS7QCpNU230WH0HXZiqItJOfPLrpR5L7g VPjDC1WRlB2J169jNBIABGoAFCd8AqBrKhkTxfHOGZOugFK5RXT2+9S1rZEGMg5b xtBgNzeFo9pq2RtXAeWgXcJXSUC9MFnY5fbuToUSOlvsYr4CKk99EFiX7S1YU+Eo hUTs6hRIXbt6EdzkVQsZbDkgLIrjiOyRXO20Quq/a09PqC/ZqXz+mztjgRvlPYj4 fgNABGoAxIhFqK1LV4121nsmnKfgPLUTEZk1bG05dULkA86/AdRgbJWJ+38/4Z+K GRT8Kqu2dQ4f47fSp+OQL76S4ur0Vmk2vXHOZqXuZIvBIV/5ZmO8uC5sdyT+Cb+3 19ct8Twfc9lACABWXDG5kijTdzytbabEFmONqNHlOutjTFjGmWOABGoABFWJTb6I n8Or2leNITMvoTZeew52vTTGfAWmLeNfHh+qgRGt6QmpHt8+YqUyQr6HMFq5bNIH HeLDiPc6R6/eaiCZ2VYYf8G6G9vfzZLyb4JD8WHP3q4+gPlg+n1xQCsv+t5cGuhL JhPoD69aIgB0rxiEDzV6zG3SqziFZXjYtyXYpZ2oFEWTbXBMhnTucJXTRrxktXXx P3e1cRCbX0VZXxpZeLqd62O9s5QnfJJxSsHOaR8YZ2ONVLtotpFB6/WDX392066T jppXfKSRqD7QMDNO0Xd0nvRYfvAW2T9jsEPxPx2ZCV+JPYu2SKneIYz+QYYcaPA1 zaE+aypIzG6SfCQABIoABAQADIQdDBG79zq8d0RhLOCxVaKSLcSQCTRtETiTLUYU yYk0WRs709wlDEsm0VsQI+X7HDSxaQJeIBWzZUaAs0ALuIqW4kw5Ny6ZSN1n52HJ QMEJV50RwrFxjgH5DfLGa7P2nQJWivL02fgBeaGtjkSi86zoPwOmmYnocbP3Ad0t bQtXECvOEUiz8TsbgalR5bkKpSTmR98NCO9SKAVUN5IM8uOnl2ct/37JLMYa+fGZ Q3I4ZHZmJN8vOANsnCNs68+QVWtRIo4fAp2QqHpmn/Is8OeOcwEJkwA3HJvJbHLI w0vleLaqwCP9UfXGHlBbknjJ4Deqb5RqnHQsN383ey+IADewAEQACKAABIApEIIM'''print(s[::-1])

得到一个base串,看了之后应该类似于RSA之类的。
然后打开搞磁盘文件常用的FTK,发现FTK能解密,于是为了研究,主动去生成了一个ad1
ctf|2021年第一届网刃杯WP misc4解+协议2解
文章图片
ctf|2021年第一届网刃杯WP misc4解+协议2解
文章图片

然后反正就生成一个ad1,记得生成的文件给他加个密
ctf|2021年第一届网刃杯WP misc4解+协议2解
文章图片

注意到正确的文件头应该是41 44
于是将题目的文件尾base删掉、文件头00 00 改成 41 44
然后FTK里点击decrypt ad1选项
可以注意到
ctf|2021年第一届网刃杯WP misc4解+协议2解
文章图片

能使用证书来解密,于是尝试。
然鹅比赛期间我一直没添加-----BEGIN RSA PRIVATE KEY-----头和-----END RSA PRIVATE KEY-----尾,一直是加的-----BEGIN PRIVATE KEY-----,导致没解出来,我麻了
ctf|2021年第一届网刃杯WP misc4解+协议2解
文章图片

如图,然后保存为pfx文件。
ctf|2021年第一届网刃杯WP misc4解+协议2解
文章图片
ctf|2021年第一届网刃杯WP misc4解+协议2解
文章图片

解密之后,用FTK挂载此文件
ctf|2021年第一届网刃杯WP misc4解+协议2解
文章图片

这里我挂载到了H盘
ctf|2021年第一届网刃杯WP misc4解+协议2解
文章图片

直接想到时间来作为2进制,2进制转ascii
于是写个脚本转换
import os list = ['']*392 i = 0 for j in range(392): list[j] = os.path.getmtime('H:\\'+str(j)+'.crypto') print(list) flag = '' for i in range(392): if(str(list[i]) == '1629859254.863367'): flag += '0' else: flag += '1' print(flag) tmp = '' for k in range(len(flag)): tmp += flag[k] if len(tmp) == 8: print(chr(int(tmp,2)),end='') tmp = ''

得到
You are so cool!!! this is your key: 6a90383cd08c
然后这392个文件是crypto文件
ctf|2021年第一届网刃杯WP misc4解+协议2解
文章图片

用这个,然后用这个key来解0.crypto和1.crypto(因为这两个时间不一样)
ctf|2021年第一届网刃杯WP misc4解+协议2解
文章图片

flag{ba40c40b-1356-4fc6-8cc7-6a90383cd08c}
协议 藏在s7里的秘密
下载下来的流量包是部分损坏的,使用网站在线修复
http://f00l.de/hacking/pcapfix.php
然后打开流量包,发现有png,但是就如此提取,必定会混入奇奇怪怪的东西
于是观察之后,用tshark来提取
tshark -r Ks3qlAF1bTuysqpJ.pcap -T fields -e s7comm.resp.data -Y “s7comm.param.func == 0x05 and ip.src=https://www.it610.com/article/=192.168.139.1”> png.txt
得到16进制数
用010打开,将十六进制数复制进去,即可得到图片,但是明显发现高度不对,因此修改任意高度,得到flag
ctf|2021年第一届网刃杯WP misc4解+协议2解
文章图片

flag{FSfeQefjg}
老练的黑客
和之前工控的那道,不能说是完全相似,只能说是一模一样
类原题博客&&赶快关注工控大佬的博客
根据此博客,能直接找到错误的值
ctf|2021年第一届网刃杯WP misc4解+协议2解
文章图片

第1199流找到22b8
然后根据观察前面的流,发现read的值是跟在过滤之后的第2个流
ctf|2021年第一届网刃杯WP misc4解+协议2解
文章图片

ctf|2021年第一届网刃杯WP misc4解+协议2解
文章图片

然后尝试理解提交
flag{22b81194}

    推荐阅读