Sexy proxy chrobák WebScarab analyzuje aplikace

Petr Závodský 15. 7. 2010

Ž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.

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í.

Našli jste v článku chybu?
120na80.cz: Víte, co je svobodná menstruace?

Víte, co je svobodná menstruace?

Lupa.cz: Olympiáda zakázala GIFy. Moc to nepomáhá

Olympiáda zakázala GIFy. Moc to nepomáhá

Vitalia.cz: Očkování je nutné, říká homeopatka

Očkování je nutné, říká homeopatka

Měšec.cz: Investiční pasti. Děláte to, co ostatní, ale proděláváte

Investiční pasti. Děláte to, co ostatní, ale proděláváte

Vitalia.cz: „Sjíždět“ porno není bez rizika

„Sjíždět“ porno není bez rizika

Měšec.cz: Kurzy platebních karet: vyplatí se platit? (TEST)

Kurzy platebních karet: vyplatí se platit? (TEST)

Lupa.cz: Co vzal čas: internetové kavárny a herny

Co vzal čas: internetové kavárny a herny

Lupa.cz: Kdo vykrádá LinkedIn? Zjistit to má soud

Kdo vykrádá LinkedIn? Zjistit to má soud

DigiZone.cz: Jetelín končí. Prima ho vyřadila

Jetelín končí. Prima ho vyřadila

DigiZone.cz: AXN u FreeSatu měsíc zdarma

AXN u FreeSatu měsíc zdarma

Měšec.cz: TEST: Vyzkoušeli jsme pražské taxikáře

TEST: Vyzkoušeli jsme pražské taxikáře

Měšec.cz: Na návštěvě na exekutorském úřadě

Na návštěvě na exekutorském úřadě

Podnikatel.cz: Pozor na vykuky, imitují služby České pošty

Pozor na vykuky, imitují služby České pošty

DigiZone.cz: ČTÚ červenec: rušení trochu vzrostlo

ČTÚ červenec: rušení trochu vzrostlo

Měšec.cz: Ceny PHM v Evropě. Finty na úspory

Ceny PHM v Evropě. Finty na úspory

Měšec.cz: Se stavebkem k soudu už (většinou) nemusíte

Se stavebkem k soudu už (většinou) nemusíte

120na80.cz: Lepší poporodní sexuální život? Žádný problém

Lepší poporodní sexuální život? Žádný problém

Lupa.cz: Co najdete uvnitř kosmické sondy?

Co najdete uvnitř kosmické sondy?

Měšec.cz: Do ostravské MHD bez jízdenky. Stačí karta

Do ostravské MHD bez jízdenky. Stačí karta

Lupa.cz: Elektronika tajemství zbavená. Jak s ní začít?

Elektronika tajemství zbavená. Jak s ní začít?