Hlavní navigace

Sexy proxy chrobák WebScarab analyzuje aplikace

15. 7. 2010
Doba čtení: 5 minut

Sdílet

Že je WebScarab sexy chrobák nezjistíte okamžitě. Jakmile mu však podlehnete, začnete zjišťovat, že on neovládá vás, ale že vy ovládáte jeho. V mžiku jím lze provést základní penetrační test, lze si však vytvořit také vlastní a podstatně komplikovanější a náročnější testy. Užitečná i nebezpečná záležitost.

WebScarab je multiplatformní nástroj pro analýzu aplikací, které komunikují prostřednictvím HTTP a HTTPS protokolů. Nejčastěji se WebScarab používá jako záchytné proxy, čímž vývojářům a testerům umožňuje prozkoumávat komunikaci mezi prohlížečem a serverem. Je psán v Javě, umožňuje doplňovat, odstraňovat či modifikovat pluginy a i ve svém základním provedení se jedná o skvělý nástroj, který ocení především lidé, kteří se věnují bezpečnosti webových aplikací.

WebScarab vs. WebScarab-NG

Aktuálně můžeme hovořit o dvou velmi podobných projektech, za nimiž stojí Rogan Dawes z Corsaire Security. O projektu OWASP WebScarab a o projektu OWAPS WebScarab-NG (Next Generation) . WebScarab-NG postupně nahrazuje zastaralou verzi WebScarab. WebScarab-NG je uživatelsky daleko přívětivější, avšak zatím neoplývá tolika funkcemi jako předchůdce WebScarab.

My se zde zaměříme pouze na WebScarab. K projektu WebScarab-NG se vrátíme s některou jeho novější verzí.

Přehled

Přepnutí z Use Lite interface do Use full-featured interface

Po prvním spuštění se vám zobrazí Use Lite interface – odlehčená varianta. S tím si pro naše účely budoucích ukázek bezpečnostních chyb však nevystačíme, proto použijeme Use full-featured interface.

Pokud se vám zobrazuje WebScarab Lite, v záložce Tools odfajfkujte Use full-featured interface. A restartujte WebScarab.

Nastavení připojení

Chcete-li WebScarab používat jako proxy, musíte k tomuto účelu přenastavit připojení v prohlížeči.

Mozilla Firefox:

Nástroje / Možnosti / Rozšířené / Nastavení připojení / zaškrtněte Ruční konfigurace proxy serverů a nastavte HTTP proxy: localhost a Port: 8008.

Internet Explorer:

Nástroje / Možnosti Internetu / Připojení / Nastavení místní sítě / zaškrtněte Používat pro síť LAN server proxy a nastavte Adresa: localhost a Port: 8008.

Proxy přepínač

Protože s WebScarabem pracuji poměrně často, bylo pro mě zdlouhavé a obtěžující neustále přenastavovat připojení. Proto jsem si brzy pořídil přepínač proxy, jenž mi při penetračním testování poskytl zvýšený pracovní komfort. Osobně nejčastěji používám jednoduchý quickProxy (Isuru Udana Loku Narangoda), doplněk pro Firefox (stránka projektu). Obdobných doplňků jistě najdete více i pro ostatní prohlížeče.

Základní ovládání

WebScarab pro začínající penetrační testery je poměrně krkolomný nástroj a je zapotřebí si na něj zvyknout. Vychází vstříc spíše zapáleným odborníkům, kteří mají přehled o problematice. Pokud čekáte, že stisknete nějaké tlačítko a nástroj vám oznámí veškerá nalezená bezpečnostní rizika, s WebScarabem ani nezačínejte. Jste-li hraví, zkoumaví, umíte-li alespoň trochu programovat, říká-li vám něco HTTP protokol a berete-li téma zabezpečení webových aplikací opravdu vážně, potom WebScarab je chrobák právě pro vás.

Cílem našeho seriálu není jednotlivé nástroje popisovat do detailu (to by zabralo několik seriálů), ale upozornit alespoň na jejich základní ovládání. S praktickým využitím se setkáme v dalších dílech, kde si ukážeme projevy a testování některých rizik. Tedy velmi stručně:

Summary: Souhrnné informace. Naleznete zde stromovou strukturu webové stránky a v tabulce seznam komunikace mezi prohlížečem a serverem. Avšak provádět změny v těchto položkách nemůžete.

Pokud v tabulce rozkliknete některou z položek, zobrazí se vám podrobnější informace.

Messages: Zde se zobrazují systémové zprávy.

Proxy: Udržuje komunikaci mezi prohlížečem a webovým serverem. WebScarab je schopen sledovat jak HTTP tak HTTPS komunikaci (to neznamená, že by tím bylo prolomeno SSL).

Proxy / Listeners: Listeners umožňuje nastavit adresu, na které WebScarab poslouchá. Ve výchozím nastavení WebScarab poslouchá na localhostu.

Chcete-li zjistit, jak se webová stránka bude chovat při konkrétním typu připojení, potom proveďte nastavení položky Speed. Na výběr máte možnosti: Unlimited, T1, ISDN, DSL (384k down, 128k up), Bonded ISDN, 56k modem, 28k modem). Pro nerušené testování chování stránky při různých typech připojení si deaktivujte Intercept requests a Intercept responses pod Proxy / Manual Edit.

Proxy / Manual Edit: Umožňuje nastavit, jak a které HTTP i HTTPS požadavky a odpovědi chceme zachytávat. Máme na výběr metody (Methods): GET, POST, HEAD, PUT, DELETE, TRACE, PROPFIND, OPTIONS – pro označení více položek použijeme klávesu Ctrl. Položka Intercept requests aktivuje nebo deaktivuje možnost použití Methods. Intercept responses aktivuje či deaktivuje odchytávání požadavků.

Proxy / BeanShell: Umožňuje provádět v podstatě jakkoliv složité operace s požadavky a odpověďmi (requests responses), které lze vyjádřit jazykem Java.

Proxy / Misscellaneous / Reveal hidden fields: Odhalení skrytého pole. Někdy oceníte provádění změn ve skrytých polích přímo na webové stránce než změnou odchycených požadavků v nástroji WebScarab.

Manual Request: Editace requestů. Můžete si vybrat předchozí požadavek pod Previous Requests a následně ho upravit anebo si můžete vytvořit zcela nový požadavek.

WebServices: Plugin umožňující analýzu WSDL .

Spider: Zobrazuje strukturu webu. Na webu se obvykle nalézají odkazy na jiné weby. Když chcete zobrazit strukturu i těchto ostatních webů, označte je a použijte položky Fetch Tree nebo Fetch Selection.

Extensions: Možnost automatizace kontroly souborů v aplikaci (například .bak, .zip aj.).

XSS/CRLF: Plugin pro pasivní analýzu; uživatel má možnost kontrolovat údaje v HTTP hlavičce a případně registrovat možná rizika typu CRLF Injection a XSS.

SessionID Analysis: Analýza cookies; např. pro vizuální kontrolu nepredikovatelnosti SessionId.

SessionID Analysis / Collection: Sběr SessionID. Z cookies (z informace v hlavičce) anebo odpovídající regulární výraz z těla.

SessionID Analysis / Analysis:

SessionID Analysis / Visualisaton:

Scripted: Možnost vytvoření skriptu (BeanShell nebo jiné podporované BSF jazyky) pro tvorbu požadavku a jeho načtení ze serveru. Skript následně může např. provádět některé automatické analýzy requestů.

Fragments: Výpis skriptů a komentářů, které procházejí přes proxy.

Fuzzer: Automatizované nahrazování hodnot parametrů; vhodné pro odhalování rizik XSS, SQL Injection apod.

Compare: Ze seznamu vyberete dvě položky a můžete porovnávat.

root_podpora

Search: Vyhledávání prostřednictvím BeanShellu. Nečekejme ale, že se jedná o vyhledávání podobné vyhledávání v Googlu. Například následující příkaz najde cookies, která nepoužívají příznak secure v případě https spojení:

request.getURL().toString().startsWith("https://") && response.getHeader("Set-Cookie").indexOf("secure") == -1

Závěr

To, že WebScarab je opravdu výborný nástroj, si ukážeme v některých dalších dílech, kdy budete mít možnost seznámit se s některými jeho přednostmi. Je pravda, že pokud si WebScarab sami nerozšíříte anebo nepočkáte na novější verze WebScarab-NG, můžete podlehnout oprávněnému dojmu, že uživatelsky jistě přívětivější jsou některé konkurenční nástroje. Vzhledem k tomu, že nástin budoucího vývoje projektu avizuje kombinaci stávajících předností s uživatelskou pohodou, doporučuji koketovat s WebScarabem již nyní.

Byl pro vás článek přínosný?

Autor článku

Petr Dušek se věnuje kvalitě a testování SW, inicioval také vznik projektů CAPTCHA Help a Skener webu či překlad OWASP Top 10.