Репликация атаки фиксации сеанса, курсовая работа (php)
Я пытаюсь повторить сеанс для моей курсовой работы, и я нашел здесь немало советов, но не могу повторить атаку на мой локальный хост.
Я попробовал пример отсюда: http://www.devshed.com/c/a/PHP/Sessions-and-Cookies/2/
fixation.php:
<?php
session_start();
$_SESSION['username'] = 'chris';
?>
test.php
<?php
session_start();
if (isset($_SESSION['username']))
{
echo $_SESSION['username'];
}
?>
Статья говорит, что я должен иметь возможность фиксировать сессию с:
http://example.org/fixation.php?PHPSESSID=1234
Но проверка заголовков запроса не работает:
Cookie PHPSESSID=0avpo8ttlmg35apkjaovj6dgd3
Также в папке tmp есть файл "sess_0avpo8ttlmg35apkjaovj6dgd3".
Я немного заблудился здесь и перепробовал несколько подобных примеров, которые не сработали...
Небольшое обновление
в php.ini, установив эти значения:
session.use_trans_sid = 1
session.use_cookies = 0
и комментируя session.save_handler
отключает сохранение сессии в cookie и создание файла tmp (я полагаю, пожалуйста, исправьте меня, если я ошибаюсь). Теперь я могу исправить сессию (в папке tmp есть файл с именем sess_1234) и перехватить ее (открыть в другом браузере, состояние возобновления). Опять же, поправьте меня, если я ошибаюсь - была ли исправлена сессия фиксации сессии в последних версиях php или просто эта простая атака? Моя текущая версия 5.3.4
2 ответа
Из статьи и того, что вы нам сообщили, это то, что я могу сказать.
PHP не полностью исправил атаку, но дал разработчику возможность не разрешать серверу принимать PHPSESSID из URL-адреса и заставлять его принимать только из cookie-файла. Таким образом, примеры, показанные в статье, на которую вы ссылаетесь, становятся более сложными для фиксации (но это ни в коем случае не означает невозможное!). В некотором смысле это очень простая атака, и она зависит от того, какие параметры конфигурации должны быть включены, но если они включены, атака очень легитимна.
Это напоминает мне немного волшебных цитат. Функция, которая, как предполагалось, помогла людям помешать SQL-инъекциям, но в итоге заставила некоторых новых разработчиков PHP писать код, подверженный SQL-инъекциям. Магические кавычки (до PHP 5.4) все еще могут быть включены, позволяя людям писать код с SQL-инъекциями, но так же, как и PHPSESSID, разработчик может решить, хотят ли они включить эти опции или нет.
Попробуйте изменить cookie в вашем браузере. Используя Firefox, установите расширение панели инструментов "Веб-разработчик". Затем в меню "Cookie" выберите "Edit Cookie" и измените значение для своего домена или создайте новый cookie, который вы пытаетесь скопировать.