Säkerhetshål på GP.se
En kollega till mig surfade runt på gp.se och lekte med deras TV-spelare. I adressfältet fick han fick syn på en parameter vid namn insertUrl vilket genast fick honom att fundera.
Phishing
Misstanken var logiskt nog att man då kanske kunde visa inte bara GP-TV genom gp.se utan vilken sida som helst. Denna misstanke visade sig vara helt berättigad. Man kunde alltså få gp.se att visa vilken annan sida som helst inuti en iframe. Och att från en annan sida bryta sig ur en iframe:n är en barnlek. Phishing-attack, ja tack!
Cross-site scripting
Alright, inte snyggt, men det tar inte slut där. Utöver att de blint litar på den URL som användaren skickar in och glatt visar den i sin iframe, så hade GP gjort ett ännu grövre fel. De hade över huvud taget inte validerat sin indata. Detta är ett av de mest grundläggande säkerhetsfel man över huvud taget kan göra på en webbsida. Det ger en elak person möjligheten att köra valfri kod (html/css/javascript/activex etc) när en användare besöker sidan.
Allt anfallaren behöver göra är att få besökarna att klicka på en specialkonstruerad länk till gp.se. Denna typ av attack kallas Cross-site Scripting (XSS) och kan leda till exempelvis stöld av de konton som finns på gp.se, exempelvis administratörer eller annonsörer. Inte bra! Inte det minsta bra!
Kontakt med webmaster
Min kollega valde att kontakta GP:s webmaster och påpeka säkerhetsbristen, så att de skulle kunna åtgärda den. Detta gjorde han igår kväll och idag under förmiddagen fick han ett svar att de nu hade åtgärdat problemet. Dock fanns i svaret inte en tillstymmelse till tack. Det kan man ju tycka att de kunde kostat på sig.
Problemet finns kvar!
Efter en snabb titt på samma sida kunde vi konstatera att förvisso har de nu en kontroll på insertUrl-argumentet för att försäkra sig om att det är en giltig GP-TV-url, men att säkerhetshålet trots detta kvarstod. Det finns nämligen fler parametrar vars värde också sätts rakt in i HTML-koden som skickas ut till användaren. Så de är fortfarande precis lika sårbara för XSS-attacker!
Sammanfattning
Så summa summarum, GP lyckas skapa en sida som inte bara lider av ett stort säkerhetsproblem, utan två! Två problem som är fullständigt grundläggande när det gäller säkerhet på webben. När vi påpekar det för dem svarar de kallt att det är fixat… men problemet kvarstår!
Jag är egentligen inte ett fan av “full disclosure” gällande säkerhetsbrister, men det finns en gräns! När de helt lyckas missa grundläggande säkerhetshål inte bara en gång utan även en andra gång efter att fått information om att hålet existerar, då har de gått över den gränsen!

[...] Min kollega skriver lite mer tekniskt om detta på hans blogg. [...]
Göteborgs-Posten sårbara för cross site scripting - February 3rd, 2009 at 11:08En vecka senare: Problemet finns kvar! Blir så trött!
Henrik Jernevad - February 10th, 2009 at 23:47Bra jobbat! Och jag kan bara instämma. Dåligt att du inte fått nån feedback från GP. När “mina” webbplatser råkat ut för liknande har vi alltid belönat tipsaren, inga stora saker men några biobiljetter eller nått i den stilen.
Fredrik Nygren - February 11th, 2009 at 23:28ÖL! När man upptäcker ett säkerhetshål av den här magnituden ska man bli bjuden på öl. Inget annat.
Nikke - May 5th, 2009 at 15:31Men allvarligt talat. Jag läser och kommenterar från den inbäddade iframen på GP.se just nu och ser att hålet har varit öppet sedan 9 februari! Hur många inbäddade spamattacker har initierats härifrån sedan dess?
Nikke - May 5th, 2009 at 15:45Funkar inte längre.
Johan - May 6th, 2009 at 20:51