zoukankan      html  css  js  c++  java
  • CRYPTO-MD5

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

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

    链接:http://pan.baidu.com/s/1bpBn4Qz 密码:w4os

    程序主体思路

    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

  • 相关阅读:
    SQL Server 数据类型映射 (ADO.NET)
    微软SQLHelper.cs类 中文版
    在WinForm中使用Web Service来实现软件自动升级
    Winform开发框架之通用自动更新模块(转)
    C# winform 最小化到电脑右下角
    3层数据访问架构(部分)
    Castle ActiveRecord学习实践
    .Net下的 ORM框架介紹
    配置企业库5.0管理
    一个简洁通用的调用DLL函数的帮助类
  • 原文地址:https://www.cnblogs.com/lomooo/p/5892268.html
Copyright © 2011-2022 走看看