Возможный эксплойт в ссылках 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 (я просто забыл опубликовать это здесь до сих пор).

Другие вопросы по тегам