Теперь приведу другой пример.
Один из пользователей в моей локалке написал аналог дмесса. Попроще конечно, но вроде как работает. Функций минимум: автоответ, история.
Софтинка прошла жёсткий тест на уязвимости.. и не зря!
========LIM-Talk_2005.03
Скачать LIM-Talk_2005.03
Простите, исходники мне так и не отдали, боялись
При тесте на бажность открылись интересные подробности.
Во входящем сообщении не проверялось имя компа-отправителя. Вообще.
Само собой
при большой длине имени отправителя буфер переполняется и ланталк с ошибкой падает, что собственно можно использовать для выполнения произвольного кода. Талк запускается под учёткой пользователя, а это как правило в 90% случаев - Админ. Вобщем, хорошая такая дырочка.
Затем выяснились ещё вот какие интересные подробности.
Журнал реализован в папке
"logs". Там храняться
"ххх .txt" файлы, где "ххх" - имя отправителя.
При приёме сообщения лантал выводит на экран. При закрытии окна (
именно при ЗАКРЫТИИ!) идёт проверка "имени отправителя" на уже имеющиёся лог-файл. Если такого отправителя небыло - создние файла "имя оправителя".txt и запись новых сообщений.
Так вот. Если имя отправителя содержит в себе символы, которые запрещены в названиях файлов - лог-файла не создастся. Ошибки при этом не вылетает - лог просто незаписывается, пропадает.
Так например:
Дальше больше - если имя отправителя например вот такое:
Код:
"../../../../../../../../troyan"
(без кавычек!), то... в корневой директории диска, где находиться талк создастся "troyan.txt"
Ну, можно и вот так:
Код:
"../../../../../../../../WINDOWS\troyan"
Внимание! Создание файла происходит ПОСЛЕ закрытия окна сообщения. Не забудьте закрыть(ctrl+W).
Но
*.txt расширение как-то не катит =]
Я угробил немало времени, пытаясь обойти расширение... и нашёл способ!
Х.з. почему, но если в конец имени поставить двоеточие, то расширение
"*.txt" не создаётся.
Пробуем:
. Создаётся файл "troyan" без расширения.
Пробуем:
... ГЫГЫГЫ

Готово.
... к сожалению двоеточие не только рубит расширение. Оно отрезает всё сообщение после себя.
Таким образом мы можем создать в любом известном нам месте на диске жертвы:
- текстовый файл с заданным содержанием
- любой другой файл без содержания (0 байт объёма)
... так же есть ограничения на символы: нельзя использовать русские буквы в пути, двоеточие для междисковых переходов(ибо его наличие есть завершение пути)
Т.е толка от инклуда почти никакого.
Однако, кое-что поганого всё же можно сделать

Если имя оправителя будет вот таким: "[пробел]:" или "[пробел][пробел]:" , где [пробел] - это и есть пробел

) :
, тогда создастся файл лога с именем в два пробела. Стандартными средствами виндов файл с таким именем
НЕЛЬЗЯ создать, и соответственно нельзя удалить.
Так же
при открытии более 72 окон - работа талка опять же аварийно завершаеться. Можно просто послать 73 собщения от разных имён - и талк упадёт.
При тестировании выяснилось, что если имя отправителя
ВООБЩЕ ПУСТОЕ, то талк при приёме каждого такого сообщения открывает окно и присваивает имени отправителя имя "ts[N]", где [N] - номер сообщения по порядку. Итак, послав 73 сообщения от пустого имени отправителя мы снова убиваем талк.
========LIM-Talk_2005.03
Скачать LIM-Talk_2005.11
Простите, исходники мне так и не отдали, боялись
Об багах
2005.03 версии было честно отписано автору. Он долго мучил себя и меня, разбираясь в сути проблем. Как бонус в новую версию ввёл добавление: фильтр мата... Эх
===================
Хочу сказать, что практически во всех болталках в автоответчике отсутствует проверка на совпадение имени получателя-отправителя. И как только возникает возмоность отправить мессагу от произвольного имени, становиться валидной атака на автоответчик - его зацикливание.
Если вы видите, что у жертвы включён автоответ - просто шлёте мессагу ему же от его же имени. Всё 
Как вариант, можно провести атаку на зацикливание автогответа, если присутствует сразу два пользователя с включёнными автоответчиками.
Стравливаете их автоответчики между собой 
====================
Это я к тому, что автор так не исправил в этом релизе данную багу, а так же багу с подменой русских букв.
А словарь имеет следующую багу. Если умудриться добавить в слов. запас строчку вида "[пробел][пробел],[пробел]":
, то при приёме сообщения, содержащего где-либо два пробела подряд - талк зависает и умирает.
При строчке "[пробел],[пробел]" - талк дохнет от одного единственного пробела(но это уже слишком, кто ж им пользоваться тогда будет?).
Для надежности было бы не плохо воткнуть подвис на три пробела, но так к сожалению почему-то не катит.
========LIM-Talk_2005.03
Скачать LIM-Talk_v2_with_SMILES
Простите, исходники мне так и не отдали, боялись
Спустя некоторое время вышел ещё один релиз, держащий смайлы.
И тут не обошлось без приколов

При просмотре списков соответствия (
"alt", "smiles") невольно обращаешь внимание на имена файлов. А что если и здесь инклуд?.. Точно!
Шлём сообщение, содержащее:
Код:
*../../../../WINDOWS/system32/setup:
хахаха) эта картинка есть в любой ХР, 2003. Возможно и в 2000.
При экспериментах всплыла ещё вот такая ошибка:
Вываливаеться еррор.
========================
По данной методике можно расковырять практически ЛЮБОЙ талк. Главное - немного желания, удачи и мозгов.
Скоро напишу тестовый эксплоит к ним.
Всем удачи в происках!