what you don't know can hurt you
Home Files News &[SERVICES_TAB]About Contact Add New

WordPress All-In-One Security / Firewall 4.1.2 CAPTCHA Bypass

WordPress All-In-One Security / Firewall 4.1.2 CAPTCHA Bypass
Posted Aug 1, 2016
Authored by Securify B.V., Sipke Mellema

WordPress All-In-On Security and Firewall plugin version 4.1.2 suffers from multiple CAPTCHA bypass vulnerabilities.

tags | exploit, vulnerability, bypass
SHA-256 | c84fb0a5553b928adc93a094721388affd5ba2494ec669021d333fcfb5d92381

WordPress All-In-One Security / Firewall 4.1.2 CAPTCHA Bypass

Change Mirror Download
Multiple vulnerabilities in All In One WP Security & Firewall plugin
Sipke Mellema, July 2016

The login CAPTCHA provided by the All In One WP Security & Firewall
plugin can be circumvented in multiple ways, allowing an attacker to
automate login attempts when the CAPTCHA is enabled.


Tested versions
These issues were successfully tested on the All In One WP Security &
Firewall WordPress Plugin version 4.1.2.

The first two findings are resolved in the All In One WP Security &
Firewall plugin version 4.1.3.


Details finding 1: Complete bypass of CAPTCHA answer validation

When the login CAPTCHA is enabled, the plugin will check if the user provided a CAPTCHA answer. If so, the answer will be checked for validity. However, the code does not account for the case where no CAPTCHA answer is provided. If no answer is sent, the login will continue as normal, even though the CAPTCHA setting is enabled.

The vulnerable code is located in wp-security-user-login.php:

//Check if captcha enabled
if ($aio_wp_security->configs->get_value('aiowps_enable_login_captcha') == '1')
if (array_key_exists('aiowps-captcha-answer', $_POST)) //If the login form with captcha was submitted then do some processing
[.. captcha logic ..]
[.. missing else statement ..]

Details finding 2: CAPTCHA answer forgery

The CAPTCHA answers leak the secret key used to create valid answers. By extracting the secret keys it's possible to forge valid CAPTCHA answers.

The vulnerable code is located at /classes/wp-security-captcha.php:

//Let's encode correct answer
$captcha_secret_string = $aio_wp_security->configs->get_value('aiowps_captcha_secret_key');
$current_time = time();
$enc_result = base64_encode($current_time.$captcha_secret_string.$result);
$equation_string .= '<input type="hidden" name="aiowps-captcha-string-info" id="aiowps-captcha-string-info" value="'.$enc_result.'" />';
$equation_string .= '<input type="hidden" name="aiowps-captcha-temp-string" id="aiowps-captcha-temp-string" value="'.$current_time.'" />';
$equation_string .= '<input type="text" size="2" id="aiowps-captcha-answer" name="aiowps-captcha-answer" value="" />';
return $equation_string;

The CAPTCHA form adds three fields to the login form:
aiowps-captcha-string-info - A timestamp, a secret CAPTCHA key and the valid answer, base64 encoded
aiowps-captcha-temp-string - The timestamp
aiowps-captcha-answer - Answer to be filled in by the user
For validating the correct answer, aiowps-captcha-string-info is checked against the timestamp provided by the user, combined with the answer provided by the user and the secret CAPTCHA key (base64 encoded).

By decoding the value for aiowps-captcha-string-info, a user can extract the secret key and create valid answers.
Details finding 3: CAPTCHA answer replay attack

The CAPTCHA mechanism (which is described above) is created in such a way that the CAPTCHA answer never expires. A valid answer can be re-used, allowing automated login attempts.
Details finding 4: Easy automatable CAPTCHA solving

Math questions created by the login CAPTCHA are not obfuscated in any way. The math questions (such as "five + 2") can easily be parsed by a program to generate valid answers.
Proofs of concepts

1. Enable the login CAPTCHA and remove the aiowps-captcha-answer parameter from the POST request. The login will succeed as normal.

2. Base64 decode the hidden field aiowps-captcha-string-info to obtain the CAPTCHA secret and a valid answer.

3. Send two login attempt with the same (valid) aiowps-captcha-string-info, aiowps-captcha-temp-string and aiowps-captcha-answer parameters. The login attempt will be accepted.

4. A programmer can use the array from the number_word_mapping method to evaluate the questions created by the CAPTCHA.

Summer of Pwnage (https://sumofpwn.nl) is a Dutch community project. Its
goal is to contribute to the security of popular, widely used OSS
projects in a fun and educational way.
Login or Register to add favorites

File Archive:

February 2024

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Feb 1st
    16 Files
  • 2
    Feb 2nd
    19 Files
  • 3
    Feb 3rd
    0 Files
  • 4
    Feb 4th
    0 Files
  • 5
    Feb 5th
    24 Files
  • 6
    Feb 6th
    2 Files
  • 7
    Feb 7th
    10 Files
  • 8
    Feb 8th
    25 Files
  • 9
    Feb 9th
    37 Files
  • 10
    Feb 10th
    0 Files
  • 11
    Feb 11th
    0 Files
  • 12
    Feb 12th
    17 Files
  • 13
    Feb 13th
    20 Files
  • 14
    Feb 14th
    25 Files
  • 15
    Feb 15th
    15 Files
  • 16
    Feb 16th
    6 Files
  • 17
    Feb 17th
    0 Files
  • 18
    Feb 18th
    0 Files
  • 19
    Feb 19th
    35 Files
  • 20
    Feb 20th
    25 Files
  • 21
    Feb 21st
    18 Files
  • 22
    Feb 22nd
    15 Files
  • 23
    Feb 23rd
    0 Files
  • 24
    Feb 24th
    0 Files
  • 25
    Feb 25th
    0 Files
  • 26
    Feb 26th
    0 Files
  • 27
    Feb 27th
    0 Files
  • 28
    Feb 28th
    0 Files
  • 29
    Feb 29th
    0 Files

Top Authors In Last 30 Days

File Tags


packet storm

© 2022 Packet Storm. All rights reserved.

Security Services
Hosting By