Ve webovém fóru pro vytváření bylo zjištěno několik , které umožňují provést vícestupňový útok pro spuštění libovolného PHP kódu na serveru. Problémy byly odstraněny ve verzi .
První zranitelnost se nachází v modulech pro publikaci a odesílání soukromých zpráv, a umožňuje vložení JavaScriptového kódu (XSS), který bude proveden v prohlížeči při prohlížení příspěvku nebo obdržené zprávy. Vložení JavaScriptu je možné kvůli nesprávnému převodu HTML vnořených BBCode. Konkrétně tag
«
a při zpracování BBCode «» bude převeden na tag
‹iframe src=»youtube.com/xyz[url]http://onload=evilCode()[/url]»›‹/iframe›
, a po zpracování dalších BBCode bude
‹iframe src=»youtube.com/xyz‹a href=»http://onload=evilCode()»›..»›‹/iframe›
Odpovídajícím způsobem dvojitá uvozovka v 'href=»' uzavírá atribut «src» a onLoad je zpracován v rámci iframe.
Druhá zranitelnost umožňuje při administrátorských právech fóra uložit do filesystemu webového serveru PHP skript a provést jej. Problém se nachází v kódu pro správu stylů pro aktivní šablonu, který umožňuje generovat nové CSS soubory. Tyto soubory se ukládají s přidáním přípony «.css», ale velikost pole v DB s názvem souboru je omezena na 30 znaků. Odpovídajícím způsobem lze soubor pojmenovat «26znaků.php.css». Při zápisu do DB budou ostatní znaky oříznuty a nakonec se uloží název «26znaků.php». Dále lze v administrátorském panelu fóra vygenerovat nový styl a soubor bude uložen do adresáře «cache» s příponou php.
K provedení útoku může útočník zaslat administrátorovi fóra speciálně stylizovanou zprávu nebo publikovat podobnou zprávu na fóru. Při prohlížení této zprávy v prohlížeči v rámci aktuální relace a s právy uživatele, který zprávu prohlíží, bude proveden zadaný útočníkem JavaScriptový kód. Pokud zprávu prohlásil administrátor, tak pro spuštění PHP kódu v rámci privilegované relace se využívá druhá zranitelnost.
Zdroj: opennet.ru
