Java Wireless Toolkit
23. März 2009 Kategorien:Bei einem Audit einer Anwendung für mobile Endgeräte die auf Basis HTTP kommuniziert, wollten wir auch Veränderungen im Datenstrom vornehmen. Die Anwendung kommuniziert über einen Proxy, aber WebScarab kann als Intercepting Proxy ja auch eine ProxyChain mit dem “originalen” Proxy bilden. Also alles kein Problem sollte man meinen. Das Jar-File wird mit dem Java Wireless Toolkit geladen, darin kann man auch einen globalen Proxy einstellen.
Leider gab es beim Verbindungsaufbau im WebScarab die Fehlermeldung
ConnectionHandler got an error : javax.net.ssl.SSLException: Connection has been shutdown: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
Hat etwa der Webscarab ein Problem? Denn über den “normalen” BlueCode Proxy funktionierts. Aus Testzwecken dann mal Fiddler gestartet, aber auch über diesen war keine Datenverbindung möglich. Ja sowas aber auch.
Eventuell liegt es ja an der Java SDK Version. Also eine VMware hochgefahren und mit einer deutlich älteren Java Version getestet, aber auch hier kein Erfolg.
Also in einem nächsten Schritt den Datenstrom mitgeschnitten. Leider kann man unter Windows nur mit üblen Verrenkungen das Loopback-Device sniffen, also erstmal die VMware erneut gestartet, um den Traffic sniffen zu können. Und ups, da kommt doch glatt ein HTTP CONNECT zum Vorschein. Dieser ist laut RFC 2616 Kapitel 9.9 CONNECT nur für Tunneling (z. B. SSL) vorgesehen und mir bisher auch nur in diesem Kontext begegnet. Das erklärt auch die Fehlermeldung von WebScarab, der schlauerweise schon eine Klartext-Verbindung vermutet hat, den Grund warum das jetzt bitte falsch sein soll aber leider verschwieg.
Da die zu testende Anwendung eine Fremdentwicklung ist, bleibt der Source-Code zur Analyse leider außen vor (und den Decompiler wollte ich nicht rausholen). Um also einzugrenzen, ob die fehlerhafte Anfrage am WTK oder dem Jar liegt, wurde als WTK Alternative der MicroEmulator zu Hilfe genommen. Und siehe da, darüber geht’s. Also scheinen Webscarab und Fiddler deutlich pedantischer zu sein, als etwas die BlueCode-Implementierung.
*ächz* Netter Bug liebe Sun Jungs. Ich bin gespannt, was Ihr mit meinem soeben gesendeten Bug-Report anfangt.
/gt