CTF中的sha1和MD5碰撞

关于在CTF中的sha1和MD5碰撞

MD5

php中 == 是弱类型,比如 123 == 123abc 是true
而 === 是恒等计算符,同时检查表达式的值和类型 ,==不会检查。

在CTF中md5碰撞基本是不可能的所以在MD5中”0e”开头,剩下的全部为数字,不管数字是多少 == 恒成立,所以”0e” == 0

s878926199a    0e545993274517709034328855841020
s155964671a    0e342768416822451524974117254469

这两个数的值不相同,但是md5提交上去比较相同,得出flag。

sha1

查看PHP源码,是说username和password字段的值不能相同,但是他们的SHA1值要相同,这样提交才能得到flag
shattered-1.pdf
shattered-2.pdf

上边两个是Google放出的两个sha1值相同而不一样的PDF文件

如何利用

1、使用cmp命令比较两个文件发现前320字节不同

2、使用urllib将前320个字节进行urlencode编码然后使用

赋予相应的值后,getflag.

Other:
把上传的图片丢图床,这里用的是极简图床配合七牛云,上传直接复制md就可以了,不用再手动一个一个去复制然后再看看md语法了