CRYPTO-MD5

Posted LOMOoO

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CRYPTO-MD5相关的知识,希望对你有一定的参考价值。

这是昨天WHUCTF比赛的一道题目,本属于crypto,其实和crypto没多大关系,

比赛时其实差不多有这种思路了,但不相信自己,就没这样做下去,回来之后,照做了,果然是这样

链接:http://pan.baidu.com/s/1ge2axLD 密码:adlo

程序主体思路

flag400.txt是自己的文件 里面就是要输的flag flag长度为32 操作是每次把 enjoy WHU_CTF2016!的一个字符和flag链接 算他们的md5值 再将md5和flag按位异或

得到长度为32的output  再算base64即为enc400.txt里面的文本
 
这里涉及到md5加salt的这样一种加密方式,有兴趣的可以了解一下
 
md5加salt的强度肯定是爆破不了的,只能在后面的按位异或找思路
思路:

flag范围是ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789{}_

md5是abcdefghijklmnopqrstuvwxyz0123456789
可以对这里进行爆破
自己写的python脚本:
import base64
base
=open(enc400.txt,r).read().split() for i in range(len(base)): base[i]=base64.b64decode(base[i]) a=[[0 for i in range(len(base))]for j in range(32)] for i in range(32): for m,n in enumerate(base): a[i][m]=hex(ord(n[i]))

print a b=abcdefghijklmnopqrstuvwxyz0123456789 c=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789{}_ for k in range(32): for i in c: for m,n in enumerate(a[k]): d=chr(int(n,16)^ord(i)) if d not in b: break if m==17: print k,i

 最后的flag是:yo_you_are_angry_i_am_excited_yo

以上是关于CRYPTO-MD5的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段5——HTML元素结构

VSCode自定义代码片段5——HTML元素结构

以下代码片段是不是容易受到 Rails 5 中 SQL 注入的影响?

需要一种有效的方法来避免使用 Laravel 5 重复代码片段

以下代码片段的时间复杂度是多少?

Android 实用代码片段