Size: a a a

2020 March 07

КР

Криптослав Рутовски in WebPwnChat
Danila_xawdxawdx Chalykin
Ты уверен, что если открыть код страницы в браузере, то там не url encode ?
На 100% :)
Чуть выше есть конструкция как это выглядит в браузере
(<a><p> ... </a></p>)
источник

DC

Danila_xawdxawdx Chalykin in WebPwnChat
Покажи скрин этого места из кода страницы
источник

I

Ivan in WebPwnChat
всегда есть причина почему не работает :)
слишком мало данных пока что.

Сразу на страницу рефлектится или нет?
Сразу в DOM, или сперва в переменную, а потом динамически подставляется в DOM? А какой именно функцией подставляется?

Ну и так далее...
источник

DC

Danila_xawdxawdx Chalykin in WebPwnChat
А потом выяснится, что это из f12 выглядит будто валид, а по факту после edit html будет encode
источник

КР

Криптослав Рутовски in WebPwnChat
Danila_xawdxawdx Chalykin
А потом выяснится, что это из f12 выглядит будто валид, а по факту после edit html будет encode
исключено)
источник

I

Ivan in WebPwnChat
вот три классических XSS вектора
xxx = '<script>alert(1)</script>';
yyy = '<img src=x onerror=alert(2)>';
zzz = '<svg/onload=alert(3)>';


Суём их в дом
document.body.innerHTML = xxx;
document.body.innerHTML = yyy;
document.body.innerHTML = zzz;


Вопрос на засыпку, почему алертит только один из них?
источник

M

MortusKill in WebPwnChat
Потому что в Иннерхтмл не работают два из этих события
источник

M

MortusKill in WebPwnChat
Это в первой же главе посвящённой дом и хсс в портсвиггер академи показывают , если не ошибаюсь
источник

I

Ivan in WebPwnChat
Пойдем дальше. Вот сайтец https://jquery.com/

Также добавим в консоль
xxx = '<script>alert(1)</script>';
yyy = '<img src=x onerror=alert(2)>';
zzz = '<svg/onload=alert(3)>';




а теперь будем не чистый innerHTML юзать, а функцию jquery

$('body').append(xxx);
$('body').append(yyy);
$('body').append(zzz);

ого, уже два алерта, а третий все еще не хочет
источник

I

Ivan in WebPwnChat
Эти чертовы хсски не так просты, как кажется, не правда ли?
источник

M

MortusKill in WebPwnChat
А кто говорит , что они просты?)
источник

I

Ivan in WebPwnChat
В общем я хотел показать, что может быть довольно много условий, почему в конкретном месте может не сработать одно, но сработает другое.

Начиная от банального урл энкода,который браузер не показал (я поэтому дважды про Burp спросил), заканчивая как именно в DOM попадает инпут
источник

I

Ivan in WebPwnChat
не верь ему
источник

I

Ivan in WebPwnChat
фаерфокс кажется имеет такую неприятную особенность, что может даже в консоли разработчика не показываеть энкоднутые данные

берп, только берп
источник

AA

Austin Augie in WebPwnChat
ctrl+u нажми и найди эту строку
источник

I

Ivan in WebPwnChat
если мы сидим в JSON, то там твоя кавычка выглядит заэкранированной
источник

КР

Криптослав Рутовски in WebPwnChat
Ivan
если мы сидим в JSON, то там твоя кавычка выглядит заэкранированной
первая. теперь увидел ее)
источник

SB

Sergey Bobrov in WebPwnChat
Ivan
Пойдем дальше. Вот сайтец https://jquery.com/

Также добавим в консоль
xxx = '<script>alert(1)</script>';
yyy = '<img src=x onerror=alert(2)>';
zzz = '<svg/onload=alert(3)>';




а теперь будем не чистый innerHTML юзать, а функцию jquery

$('body').append(xxx);
$('body').append(yyy);
$('body').append(zzz);

ого, уже два алерта, а третий все еще не хочет
3
источник

I

Ivan in WebPwnChat
хм, у тебя тут тоже срабатывает?

zzz = '<svg/onload=alert(3)>';
$('body').append(zzz);
источник

B

Bo0oM in WebPwnChat
Ivan
вот три классических XSS вектора
xxx = '<script>alert(1)</script>';
yyy = '<img src=x onerror=alert(2)>';
zzz = '<svg/onload=alert(3)>';


Суём их в дом
document.body.innerHTML = xxx;
document.body.innerHTML = yyy;
document.body.innerHTML = zzz;


Вопрос на засыпку, почему алертит только один из них?
:)
источник