31 Марта, 2015

Wikipedia взломана

Bo0oM
Здарова %username%!

Как-то случайно, я наткнулся на папку . git на сайте википедии. Распарсив git с помощью утилиты gin, я получил представление о файловой структуре проекта.
Файлы википедии
В файле index хранятся имена и пути к файлам, которые хранятся в папке объектов (.git/objects), найти их можно с помощью хэша SHA-1, что я и сделал. К полученным файлам нужно ещё применить функцию ungzip.

Чудеса git'а



Помимо всего, было много sql файлов (типа этого ), файлов с расширением inc , sh , make-файлов. Оказывается, можно было даже переустановить википедию, если бы не досадная ошибка
Вскоре шарясь в исходниках, я нашёл интересный файл с именем UploadStashTest.php, который пытался загрузить файлы, но ругался на расширение php, после экспериментов, выяснилось, что расширение обрубается с помощью нульбайта (%00)
Веб-шелл

Оставалось дело за малым, сначала я слил исходники, проблем с ними особо небыло, держи:
wikipedia.backup.tar.gz

А когда очередь дошла до базы, тут начался геморрой.
1) Оказывается, у википедии используется распределённая система хранения данных базы данных, распределяет всё балансировщик, поэтому сливать приходилось в течении недели.
2) База просто огромная, пришлось раскидать на несколько файлов, предварительно запаковав в gzip, качаем, делимся с друзьями:

user_groups.sql.gz
articles.xml.gz
logging.xml.gz
page.sql.gz
image.sql.gz

Письма на fix отправлены, ждём вердикта, удачного дня
З.Ы. И это не шутка