Подмена аргументов при шаре в соцсети

By 9 сентября 2015 Март 9th, 2016 Blog

Привет %username%

Знаешь ли ты, как поведет себя веб-приложение, если передать ему несколько параметров с одним именем?
А вот теперь сравни:

В зависимости от поведения, эти свойства можно использовать по-разному, подробнее можно почитать, например, тут. Для php, типичное поведение — это использование последнего указанного параметра, если таковых несколько.

Так суть поста-то в чём. Многие используют красивенькие кнопочки на сайтах, вида понравился материал — поделись! Так эти кнопочки могут быть не только уязвимы к xss РАЗ, ДВА (by @HVMephisto) так еще и к parameter pollution.

А вот тебе пример, любая статья на lenta.ru. Ссылка для шаринга будет иметь вид:

https://vk.com/share.php?url=http://lenta.ru/news/2014/09/19/assangegoogle/

Ок, странице share.php предается параметр url с сайтом. А если будет ДВА URL? Тут и появляется возможность эксплуатации. А вектор такой, ты даешь ссылку на проверенный сайт, пользователь решается поделиться с друзьями — в ленту публикуется совершенно другая ссылка.

Вот, для примера, попробуй расшарить ЭТУ ССЫЛКУ

 

 

parameter-pollution

А все происходит потому, что некоторые передают параметры без urlencode, что позволяет эти параметры подменять (добавляя новые). Особенно весело смотрится подмена картинок.

image

Сайтов, в которых можно провернуть этот трюк — много. Будь внимателен. И это. Шарь давай, шарь!

Join the discussion One Comment

Leave a Reply