-
蜘蛛侠啊
-
安恒杯misc
- linux tshark identity 部分指令
- 附件下载 https://pan.baidu.com/s/1uo0GFufTjMqR8rtBzp5PlQ 密码 2cq5
首先打开附件pcap包 茫茫多的icmp包 稍微看一下似乎每个包内容都不太一样
但是 $$START$$ 似乎暗示了什么
看看最后一个ICMP包:
基本可以判定这是传递了一个文件 因此我们的思路就是把这个文件提取出来
linux 的 tshark 命令可以实现这个功能 具体的参数可以度娘学习下
将 hex 转为 ascii 码 发现内容有冗余 跑个脚本冷静一下
1 a=open('1.txt') 2 f=open('2.txt','w') 3 i=0 4 while i != 72156: 5 b=a.readline() 6 if i%4==0: 7 f.write(f'{b}') 8 i+=1 9 f.close()
跑完之后发现使用base64进行了加密 再来个脚本
1 import base64 2 lines = open('2.txt','rb').readlines() 3 flie = open('file','wb') 4 result = "" 5 for line in lines: 6 flie.write(base64.b64decode(line.strip()))
文件最终是以zip格式生成的 解压后得到蜘蛛侠的特写gif
gif帧播放的很诡异 使用linux的 identity 命令查看一下
绝大多数帧播放时间都是20 或者50毫秒 将20看做0 50看做1
转化为二进制 再解码之后:
将这个字符串md5后即可提交flag
-
md5
-
强网杯web签到
- 题目环境 http://39.107.33.96:10000/
题目虽说是签到题 难度却丝毫不签到 而且从这道题可以学到不少哈希函数的姿势
- 第一部分
题目逻辑:
应对方案:php 0e开头的数字会当做科学计数法解析 因此只要传两组md5值开头为0e的即可
参考网站:https://www.cnblogs.com/Primzahl/p/6018158.html
- 第二部分
题目逻辑:
php为了针对0e错误 专门定义了=== 系列操作符 意思是两参数类型和值都相同才返回真 !== 是指两个参数的类型和值都相同时才返回假
因此这一问的意思是要构建两个参数 使得他们类型或者值不相同 但哈希值相同
应对方案:使用burpsuite 传两个值不相同的数组即可(php的md5函数如果参数不是字符串则返回一个null 而null===null)
- 第三部分
题目逻辑:
这下传数组大法使不了了 php这次将两个参数强行转成string
度娘了一个生成相同md5值的软件fastcoll
检验下生成的两个文件
将两个文件url编码后上传到服务器即可得到flag
1 #编码的python脚本 2 from urllib import parse 3 result = parse.quote(open('3.txt','rb').read()) 4 print(result)
txt文件只哈希文件内容 不一样的内容哈希值基本不可能一样 fastcoll造出来的文件只能碰撞单一哈希函数(两文件其他的哈希值均不相同)
fastcoll产生的两个txt文件是加上文件头尾之后恰好哈希值相同,所以去除掉文件头尾(只哈希内容)哈希值就不会相同