Log failed passwords to a file in Wordpress

From ETCwiki
Revision as of 16:01, 21 January 2018 by Ddxfish (talk | contribs) (Created page with "One of my Wordpress sites was getting hacked and I was wondering what passwords the hackers were attempting to use so we could know how serious it was. I added this snippet of...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

One of my Wordpress sites was getting hacked and I was wondering what passwords the hackers were attempting to use so we could know how serious it was. I added this snippet of code to the end of my functions.php file in Wordpress. This code hooks into wp_login_failed, so it will only record failed passwords to the file. You have to modify one line to link to your website's root directory.

Yeah I know this code could be done in fewer lines and with better output logging. Oh well, it works.

Wordpress 4.9.2 -- Written 1/21/2018

Dangers

  • If you mistype your password by 1 letter it will be logged!
  • Writing to a hidden file like .htfailures will make it more secure, do not write to a CSV or something that ends up public!


//RECORD FAILED PASSWORDS TO A FILE goes in functions.php
add_action('wp_login_failed', 'login_failed_func');
function login_failed_func($args) {
        //Start output buffering to avoid echoing
        ob_start();
        $data = var_dump($args);
        $out = ob_get_clean();
        $failed = $_POST['pwd'];
        $date = date('m/d/Y h:i:s a');
        //REPLACE THIS FILE WITH YOUR FILE
        $my_file = '/var/www/mysite/public_html/.htfailures';
        $handle = fopen($my_file, 'a') or die('Cannot open file:  '.$my_file);
        $newline = "\n";
        fwrite($handle, $date);
        fwrite($handle, $out);
        fwrite($handle, $failed);
        fwrite($handle, $newline);
        fwrite($handle, $newline);
        fclose($handle);
}

External Links