Pokud ještě provozujete Exchange 2003, máte OWA otevřené do Internetu (k čemu jinému by taky bylo) a chcete chránit své uživatele před rhybařením, nestačí nainstalovat všechny dostupné service packy a hotfixy, ale je nutné sáhnout též k manuální úpravě ASP kódu. Naštěstí to není tak náročné, spíš je důležité si zapamatovat, že kdyby náhodou Microsoft vypustil ještě nějaký hotfix, tak je potřeba se podívat, co je v něm a zkontrolovat, že níže popisovaná úprava buď byla dodána Microsoftem nebo zůstala nedotčena. Jinak Microsoftí oficiální rada je upgradovat na vyšší verzi Exchange. Rada k nezaplacení, že?
V následujícím textu budu předpokládat, že instalace Exchange Serveru 2003 na C:\. Nejdříve v adresáři c:\Program Files\Exchsrvr\exchweb\bin\auth\ zkontrolujte, jaké jazykové mutace používáte, resp. chcete používat. Upravit by se měly soubory ve všech podadresářích, kdybyste to nechtěli otrocky přepisovat, lze vybrané adresáře smazat, ale potom zase musíte modifikovat soubor owalogon.asp, v němž je zapotřebí smazat řádky odpovídající zrušeným adresářům. Místo zrušených jazyků se pak bude objevovat standardně angličtina.
Takže zpět k URL injection. V každém podadresáři je soubor logon.asp. Na jeho 54. řádku se nachází
redirectPath = Request.QueryString("url")
Tuto konstrukci je potřeba zaměnit třeba za
redirectPath = “https://vas.exchange.cz/exchange/”
kde vas.exchange.cz je veřejné FQDN jméno vašeho Exchange serveru.
Toto je jedno z nejjednodušších řešení, samozřejmě lze sestavit robustnější konstrukci, která zdetekuje, zdali má být https či http, zkontroluje, zdali náhodou nechcete přistoupit na /public (pak by nedoplnila /exchange/, ale /public/), bude brát v potaz např. interní a externí FQDN, pokud jsou rozdílné. Předpokládám ale, že drtivé většině zbylých administrátorů OWA 2003 bude to nejjednodušší řešení stačit.
A nakonec ještě zbývá doplnit, že v případě FE/BE architektury je nutné soubory pozměnit na všech front-end serverech. Na back-endy se sahat nemusí.