前言:misc浅浅ak了一下,misc2一血misc3二血,最高冲上了第5,不过后来还是嘎嘎掉到第9,crypto和pwn一道没出真的太菜了(
希望周末决赛能好好加油!
misc
misc1-好怪哦
拖到010观察得到是逆置的zip压缩包,简单写个脚本倒一下
with open('fuck.zip','rb') as f:
hex_list = ("{:02X}".format(int(c)) for c in f.read()) # 定义变量接受文件内容
buflist = list(hex_list) # 用列表保存信息,方便后续操作
list1=buflist[::-1]
flag=''
for i in list1:
flag+=i
print(flag)
解开后得到一个缺少文件头的png,补上png文件头
提示CRC校验错误,修改宽高后得到flag
misc2-神奇的棋盘
打开得到一副adfgvx
加密棋盘
观察txt数据只有1-5,猜测是数字字母坐标转换,用notepad批量操作一下
得到
AGAXXDAGGVGGVDVADAVXDGADVGDVAADDDDFXAFAFDGDVXXDGGDGGDXDDFDDXVGXADGVDFXVVAADDXDXXADDVGGGXGXXXXGXXGGXGDVVVGGGAGAAAAGAAGGAGDDDAGAGGGAGGAGAGAAAVAAAXGXGGGXGGXGXGXXXV
直接解adfgev
发现出不来
后发现棋盘存在lsb
隐写
是base32
得到一串key:Yusayyds
这里卡了很久,因为断网没有办法找网站解带key的adfgvx
但队友很给力,在CaptfEncoder
里找到带key的adfgvx
解密,直接解得到flag
misc3-segmentFlow
观察压缩包数据,前7个小文件只有4字节,尝试使用crc
爆破文件内容
import string
import binascii
def Crack_4B(crc_list):
print('-------------Start Crack CRC 4B-------------')
#crc_list = [0xc0a3a573, 0x3cb6ab1c, 0x85bb0ad4, 0xf4fde00b]#文件的CRC32值列表,注意顺序
comment = ''
chars = string.printable
flag = 0
for crc_value in crc_list:
for char1 in chars:
for char2 in chars:
for char3 in chars:
for char4 in chars:
res_char = char1 + char2 + char3 + char4#获取遍历的任意4Byte字符
char_crc = binascii.crc32(res_char.encode())#获取遍历字符的CRC32值
calc_crc = char_crc & 0xffffffff#将遍历的字符的CRC32值与0xffffffff进行与运算
if calc_crc == crc_value:#将获取字符的CRC32值与每个文件的CRC32值进行匹配
print('[+] {}: {}'.format(hex(crc_value),res_char))
comment += res_char
flag = 1
break
if flag == 1:
break
if flag == 1:
break
if flag == 1:
break
flag = 0
print('-----------CRC Crack Completed-----------')
print('Result: {}'.format(comment))
crc_list = [0xce70d424,0xc3f17511,0xf90c8a70,0xf8ab2771,0xc0ce8ee6,0xb2a6cde9,0x8637fa85,0x62f8f1a9]
Crack_4B(crc_list)
得到压缩包密码:gZinflAte_BasE64
解开后观察流量包数据,发现有大量的base64字段,再根据压缩包密码猜测肯定是有用的,直接tshark拉出来全部数据
tshark -r segmentFlow.pcapng -T fields -e urlencoded-form.value | sed '/^\s*$/d' > 1.txt
发现数据之间用逗号隔开,将其全部替换为换行
发现大量的散落的zip数据,手动全部提取出来,解开得到flag
web
web1
真·签到题,呆瓜了一直没搞出来,结束前一分钟搞出来了,来不及补wp了(
后来想复现平台关了,所以没法贴图,简单描述一下吧
御剑扫出robots,一路跟进进去,最后一个页面f12获得hint,根据描述直接get传参即可
web2-nisc_学校门户网站
浏览题目,看到默认密码的规则
发现有注册界面,尝试注册,输入默认密码作为自己的密码
注册成功后登录网站,直接获得flag
web3-吃豆人
查看题目,是一个网页小游戏,用开发者工具打开查看js实例。
看到连接index.js
,点击进入分析
index.js最后看到一串base64的字符,尝试解密,获得flag。
DASCTF{f235b02382a223fda4ce2ec62148d94c}
re
re1-ManyCheck
首先尝试脱壳,发现没有壳
运行程序,查看程序功能和显示的字符串
使用ida反编译查找对应字符串
跳转到对应的位置,查看程序逻辑
发现需要让第一个输入的字符等于77,然后再算出后面两个算术题。
成功进入第三关,程序是右移,我们需要左移获得flag
d = 1718896489
bin_d = '0'+str(bin(d)[2:])
temp = bin_d[16:]+bin_d[:16]
print(int(temp,2))
#1198089844
输入答案获得flag
DASCTF{M71_Gift_08L}
个人拙见,各位师傅如果有好的解法可以交流一下
有需要题目备份的可以dd