A zatem pytanie brzmi: co należy tutaj zrobić, aby móc pomimo wszystko wykonać tutaj dowolny kod javascriptowy, zapominając o 30-znakowym ograniczeniu? Miło widziany proof of concept :)
script , to nazwa domeny musiałaby składać się z co najwyżej trzech znaków. Wykonalne, choć wymaga trochę zachodu. Jest inny sposób, który nie wymaga takich nakładów.
@rationalistic: Nie bardzo wiem jak miałoby to działać, biorąc pod uwagę, że nie masz nic w evalu. Najprościej spróbować samemu coś zdziałać i jak będzie działać, to podesłać linka ;)
Jak nie będzie odpowiedzi do jutrzejszego wieczoru, to podam rozwiązanie.
Skorzystamy z tagu iframe i umieścimy XSS-owaną domenę wewnątrz tego iframe'a. Ze względu na same origin policy nie ma możliwości odwoływać się do jakichkolwiek atrybutów strony wewnątrz iframe'a, jeśli ta jest z innej domeny (z kilkoma wyjątkami, m.in.
postMessage , który tutaj akurat się nie przysłuży). Istnieje jednak pewien atrybut, na który poprzez iframe'a możemy mieć wpływ -
Proponuję kolejną zagadkę hakerską, znów na tapetę bierzemy #xss. Pod adresem http://hakerium.cba.pl/zad8/ znajduje się strona z banalną podatnością typu XSS. Wystarczy wpisać dowolny tekst HTML i zostanie on wyświetlony na stronie, np. http://hakerium.cba.pl/zad8/?imie=%3Cscript%3Ealert%281%29%3C/script%3E
Na czym polega więc zagadka, skoro już podałem rozwiązanie? Ano na tym, że pole
imie
jest ograniczone do 30 znaków. A zatem najprostszy
alert(1)
da radę wykonać, ale odrobinę bardziej skomplikowany
alert(document.domain)
już nie: http://hakerium.cba.pl/zad8/?imie=%3Cscript%3Ealert%28document.domain%29%3C/script%3E
A zatem pytanie brzmi: co należy tutaj zrobić, aby móc pomimo wszystko wykonać tutaj dowolny kod javascriptowy, zapominając o 30-znakowym ograniczeniu? Miło widziany proof of concept :)
src
tagu
script
, to nazwa domeny musiałaby składać się z co najwyżej trzech znaków. Wykonalne, choć wymaga trochę zachodu. Jest inny sposób, który nie wymaga takich nakładów.
Jak nie będzie odpowiedzi do jutrzejszego wieczoru, to podam rozwiązanie.
Nie jestem pewien czy inny doctype przypadkiem nie zablokowały takiego zamknięcia script, muszę to pózniej sprawdzić.
Jak będę wieczorem na kompie, to podam jeszcze inne rozwiazanie.
Teraz doczytałem, że faktycznie
Skorzystamy z tagu iframe i umieścimy XSS-owaną domenę wewnątrz tego iframe'a. Ze względu na same origin policy nie ma możliwości odwoływać się do jakichkolwiek atrybutów strony wewnątrz iframe'a, jeśli ta jest z innej domeny (z kilkoma wyjątkami, m.in.
postMessage
, który tutaj akurat się nie przysłuży). Istnieje jednak pewien atrybut, na który poprzez iframe'a możemy mieć wpływ -