WebScarab jest jednym z moich podstawowych narzędzi pracy. Jest to fatalny kawałek softu. Problem w tym, że nie ma nic lepszego...
WebScarab robi mi źle...
Java...
Nie, nie chodzi nawet o to, że soft jest w Java. Eclipse też jest w tym języku i złego słowa na niego nie powiem. No, może trochę za bardzo żre zasoby, ale można to przeboleć. WebScarab jest dla mnie przykładem softu, którego status powinien brzmieć "work for me". Problem w tym, że dla mnie często jednak nie działa.
Żółwia responsywność...
Prowadzenie testów aplikacji webowej to tak naprawdę w większości wypadków benedyktyńska praca. Każda formatka ma od kilku do nawet kilkudziesięciu parametrów. Praktycznie każdy parametr należy sprawdzić przeprowadzając kilka standardowych testów po to, by zobaczyć jak się zachowuje aplikacja. Jeśli o tej monotonii doda się zauważalne przestoje GUI w WebScarab (na razie przestoje, a nie totalne kilkusekundowe zawieszenia), to... Szkoda gadać. To, że samo GUI jest dość toporne, przemilczę.
Niepotrzebne pluginy
WebScarab jest taki dobry, bo ma kilka przydatnych pluginów. Kilka jest jednak kompletnie zbędnych. Nie znoszę pluginu XSS/CRLF. W 99.9% plugin ten się myli. Można by go było ignorować, gdyby nie fakt, że sobie chodzi gdzieś tam w tle i zżera zasoby. Kiedyś naprawdę chciałem się z nim zaprzyjaźnić. Nawet specjalnie na tę okoliczność popełniłem dziurawą stronę. Po długich i ciężkich zmaganiach udało mi się go zmusić do poprawnego znalezienia XSS. Ale tylko jeden raz (w sesji). Z taką piosenką Maxi Kaz mi się to kojarzy... Chciałbym mieć możliwość łatwego wyłączenia tych pluginów, z których nie korzystam. WebScarab Lite nie załatwia sprawy, bo akurat z części funkcji, które w tej wersji są niedostępne, korzystam.
Mechanizm skryptów
BeanShell jakoś mnie nie przekonał. Po długich walkach udało mi się uruchomić w WebScarabie skrypty w Jython. Moja radość trwała jednak krótko, bo model podpinania skryptów pod zdarzenia zupełnie nie pasował do tego co chciałem zrobić. Może jestem za głupi, jednak w innym "środowisku" udało mi się osiągnąć zamierzony efekt, co zresztą już opisałem w tej historii. Tak, wiem. WebScarab jest OpenSource, mogę sobie w źródłach poprawić cokolwiek. Tylko po co? Po to są właśnie różne skryptowania... Oczywiście z sensownie pomyślanym modelem zdarzeniowym.
Fuzzer
Lubię ten moduł. Zwłaszcza w przypadku sprawdzania walidacji w aplikacji. Zapuszcza się fuzzer na badane parametry i patrzy na rezultat. Tylko, że używanie fuzzera prowadzi do stopniowego spowalniania WebScaraba, włączenia się wszystkich dostępnych wiatraczków, a na końcu do sprowadzenia responsywności aplikacji do poziomu naszej-klasy.
Moduł Compare
Moduł Compare jest fajnym rozszerzeniem, które w połączeniu z fuzzerem znacznie ułatwia pracę. Problem w tym, że nie mogę oznaczyć grupy żądań i przesłać je do Compare, lecz WebScarab działa na wszystkim, co zobaczył w danej sesji. Niewygodne toto, a i komputer zabija. W dodatku jak się już dostanie listę żądań wraz z edit distance to niestety nie można kliknąć na wybranym elemencie by obejrzeć request i response. Zamiast tego trzeba się przełączyć na Summary i znaleźć odpowiedni element na liście. Wygoda i ergonomia niesamowita... Mać.
Obsługa kart kryptograficznych...
Wielkim plusem jest to, że WebScarab obsługuje karty kryptograficzne za pomocą ładowanych bibliotek PKCS#11. Problem się pojawia wtedy, gdy trzeba się przełączać między kilkoma tokenami...
...i mógłbym tak długo
Ale nawet odpuszczając sobie wymagania co do ergonomii i uzbrajając się w cierpliwość, to nie jestem w stanie zrozumieć dlaczego po pewnym czasie WebScarab po prostu musi zajmować 100% czasu procesora. Wówczas można albo uruchomić WebScaraba od nowa (super rozwiązanie, gdy już załadowało się biblioteki PKCS#11 i ileś tam reguł do Fuzzera), albo spróbować otworzyć nową sesję. To drugie nawet czasem działa, ale czasem WebScarab lubi wówczas kompletnie przestać reagować na zdarzenia z GUI. Nawet zamknąć go wówczas normalnie nie można, tylko po prostu proces ukatrupić trzeba...
I chętnie bym porzucił WebScaraba, gdyby nie to, że nie mogę znaleźć nic, na co miałbym się przesiąść. Do obserwowania sesji i czasami tamperingu nadaje się wspominany już Fiddler. Do działań "aktywnych" jednak wciąż trochę ma za mało funkcji. Na przykład co prawda można zrobić manual request (Request Builder), ale tylko po HTTP. Oczywiście, można ustawiać proxy jakoś kaskadowo, ale chyba nie tędy droga. Postępów w rozwoju WebScarab NG też nie widzę za wielkich. Trzeba się będzie jeszcze z tym WebScarabem pomęczyć :(