-->
当前位置:首页 > DayDayUp > 正文内容

两道某银行CTF面试题

Luz1年前 (2023-08-20)DayDayUp1938

有人能帮我吗

我是一个运维,有人偷偷看了一张我们网站上没有公开的,名叫facebook的照片,我必须找到他,让他守口如瓶,可是我找不到他了,你能帮我找到他的物理地址吗?这样就方便我找到他了。提交flag格式: flag{md5(物理地址}}


lotsofweb.zip


流量分析,给的提示很明显。

tcp contains "facebook"  过滤流量

image.png

就剩几个包了,请求来源IP:172.16.16.136

请求来源mac地址:00:21:6a:5b:7d:4a

fe380e944dab2dda45d7e811999b46b.png

flag{3723961ed39b4158eff1edb9cbee559c}



强大的hash


为了规避密码hash泄漏后被GPU爆破,安全部推广安全hash算法。您可以告诉我数据库中的hash密码是什么吗?

hash:$v=19$m=32768,t=100,p=1$MTIzNDU2Nzg$iuSRO5tkWxBxqgkI5g9O5ZersA//xvgvrKxH8QuxBBI4yKbG4aRFqITP/Rh5giFRuL9PTJP+/0BUfNwZHzx9bQ


密码格式:CTF_三位数_三位数 (数字为电话号码)

例如:CTF_114_114

flag为: flag{CTF_三位数_三位数}


强大的hash附件.zip


看这个密文格式还以为是shadow文件类型的,但是最前面的$1是指md5才对,用不到这么多参数。


最后发现是Argon2算法,顺便学习了一下。

Argon2算法

Argon2 is a password-hashing function created by by Alex Biryukov, Daniel Dinu, and Dmitry Khovratovich.

Argon2算法曾在2015 年的Password Hashing密码加密大赛中胜出。

Argon2官网:https://www.argon2.com/

------------------------------------------------------------------------

0x00 phc-winner-argon2的安装

git clone https://github.com/P-H-C/phc-winner-argon2cd phc-winner-argon2make

使用方法:

echo -n "CTF_110_911" | ./argon2 12345678 -d -t 100 -m 15 -p 1 -l 64

 

0x01 argon2-cffi的安装

CFFI: C Foreign Function Interface for Python. Interact with almost any C code from Python, based on C-like declarations that you can often copy-paste from header files or documentation.

pip install argon2_cffi

请不要安装pip install argon2

argon2-cffi的github:https://github.com/hynek/argon2-cffi

argon2-cffi文档:https://argon2-cffi.readthedocs.io/en/stable/

 

0x02 argon2-cffi的使用

# -*- coding:utf8 -*-
__author__='pcat@chamd5.org'

from argon2 import PasswordHasher

ph=PasswordHasher()
hash='$argon2d$v=19$m=32768,t=100,p=1$MTIzNDU2Nzg$iuSRO5tkWxBxqgkI5g9O5ZersA//xvgvrKxH8QuxBBI4yKbG4aRFqITP/Rh5giFRuL9PTJP+/0BUfNwZHzx9bQ'
pwd='CTF_110_911'
assert ph.verify(hash,pwd)==True


0x03 argon2的各个版本

  • Argon2d 最大限度地提高了对GPU破解攻击的抵抗力。它以密码相关的顺序访问存储器阵列,这降低了时间 - 存储器权衡(TMTO)攻击的可能性,但是引入了可能的侧面信道攻击。

  • Argon2i 优化了抵御侧向通道攻击的能力。它以密码无关的顺序访问内存阵列。

  • Argon2id 是一个混合版本。它遵循Argon2i方法进行第一次通过内存,Argon2d方法用于后续通过。Internet-Draft建议使用Argon2id,除非有理由选择其他两种模式之一。

 

Argon2 接收如下几个输入配置参数:time_cost(时间消耗,即迭代次数,本题中的t)、memory_cost(要使用的 KB 数,本题中的m)、parallelism(并行度,使用多少个线程,本题中的p)、hash_len(派生密钥的长度)、salt_len(随机生成盐的长度,通常是 128 位 / 16 字节)。


flag{CTF_110_911}

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。