Возможный эксплойт в ссылках phpmyadmin http://dev.mysql.com/
Я заметил, что когда я выполняю запрос в phpMyAdmin, он показывает его на экране в виде ссылки. Когда вы нажимаете на эту ссылку, она перенаправляет вас на http://dev.mysql.com/ с соответствующим запросом. Разве это не эксплойт?
Таким образом, они могут получить ваш токен, сохранив:
$_SERVER['HTTP_REFERER']
Я попробовал это с JS, и я заметил, что это показывает последний URL
document.referrer
"http://localhost/phpmyadmin/index.php?db=www_&table=meeting_planner&target=tbl_sql.php&token=a24a6bfb214586e23954....."
2 ответа
Если предположить, что токен обсуждается здесь, то да. Это уязвимость (пусть и незначительная).
Это позволяет токену анти-CSRF просачиваться на конкретный сайт (который был выбран авторами программного обеспечения и, вероятно, заслуживает доверия).
Вы должны быть в состоянии смягчить его, получив доступ к PHPMyAdmin через HTTPS (который имеет тенденцию блокировать информацию о реферере при переходе на другой сайт).
Защита CSRF работает, имея две копии токена. Один в куки (или сессии) и один в форме.
Обычно нет необходимости защищать от CSRF-атак для операций, которые только читают данные, и операций, которые записывают данные, должны быть формами POST, поэтому токен CSRF никогда не должен появляться в URL.
phpMyAdmin немного странная утка в том, что операция чтения очень легко может быть использована для запуска DOS-атаки на сервер (поскольку вы можете отправлять SQL-запросы). Эти запросы, вероятно, должны использовать токены CSRF, но, так как добавление их сделает ссылку недоступной для закладки / общего доступа, пост в любом случае может также использовать POST здесь.
Объяснение Квентина было довольно хорошим; Мне нечего добавить к этому - но это было исправлено еще в феврале с помощью phpMyAdmin 4.2 (я просто забыл опубликовать это здесь до сих пор).