Re: java app question

¨˜”°º•C0D3w@lk3r•º°”˜¨ <[email protected]>
Newsgroups gmane.comp.security.penetration,gmane.comp.security.web-applications
Message-ID <[email protected]>
Well as said above by Rogan and Luca, you can try the technique I
recently presented at Black Hat Europe.
Below is the presentation I uploaded on Slideshare, it also contains a
video demonstration of how it works :
http://www.slideshare.net/msaindane/black-hat-eu-2010-attacking-java-serialized-communication

The Burp plug-in template can be found here:
http://www.andlabs.org/tools.html#dser

Also if you are facing problems on passing the data to the
interception proxy; you can use the Sniff-n-split tool
http://www.andlabs.org/tools.html#sns

Let me know if this works for you :)

Rogan: I'm in fact looking forward to the OWASP Proxy project as it
provides a proxy API. So people can use the same technique by
utilizing this proxy from within their code.

Cheers,
Manish S. Saindane
Attack & Defense Labs
manish (-at-) andlabs.org

On Fri, Apr 23, 2010 at 9:45 PM, Rogan Dawes <[email protected]> wrote:
> On 2010/04/23 5:56 AM, learn lids wrote:
>> hi all,
>>
>> i am looking to pen test an app which is not a webapp :) . on
>> browsing to the url it launches a java application using jnlp.
>>
>> i used a network traffic sniffer to see the traffic, and it is making
>> post requests to several different urls (e.g.
>> webapp.com/generatereport etc.), and the response is of type
>> x-serialize object.
>>
>> any suggestions on what could be things to look at for such a
>> pentest?
>>
>> thanks
>
> Here is a list I made up a while ago:
>
> =====snip======
>
> Reviewing a thick client for security problems
>
> secure comms
>
> - SSL & hostname verification
>
> Authentication & Session management
>
> - handle credentials safely
>
> - handle sessions safely
>
> - handle account management functions safely - change password, etc
>
> Access Control
>
> - Check whether client side access control (presentation layer) is being
> performed
>
> Validation (request/Response)
>
> - Check that user data is validated before being sent to the server (not
> necessarily critical if it is not, IF the server IS validating input).
> However, it makes it possible for the server to say with certainty that
> any bogus data that reaches the server is definitely an attack.
>
> - Check that data returned from the server is validated before being
> presented to the user. Keep in mind that data provided by another user
> may end up being used in local DB calls, or cmd injection calls
>
> Data Protection
>
> - Check for client side caching of results, also logging of sensitive
> information in local log files, etc
>
> Error Handling
>
> - Do we care if exceptions are shown to the user in detail? Not really,
> they could still see that they were occuring with a debugger if they
> wanted to.
>
> Intrusion Detection
>
> - Can we rely on a client to do intrusion detection?
> - Does a client even have to do logging?
>
> Encryption
>
> - what sensitive data are we handling that we need to encrypt?
>
> Availability
>
> - what long running server-side jobs can we kick off from the client?
>
> - can the client be used to execute a DOS against the server?
>
> Concurrency
>
> - relevant on the client side? Not really.
>
> General
>
> Make sure that running the client is not exposing the user to attack.
> i.e. no local services, any local DB is not listening to the network,
> etc. Check the standard Runtime.exec calls, etc
>
> =====snip====
>
> There are a couple of approaches you can take. Either inject a BeanShell
> into the app, and use it to manipulate the requests before they are
> made, or find a proxy that can deserialise the objects and allow you to
> modify them in transit.
>
> The first option is probably the best one, as you get much better
> control over what is sent, and when, and don't have to worry (as much)
> about client-side timeouts while you are looking at the object that was
> sent.
>
> The second option is still feasible, however. I believe there was a
> recent presentation on doing this exact thing with Burp Suite.
>
> WebScarab or OWASP Proxy should also allow you to achieve the same
> thing, with varying levels of programming required. Using WebScarab, I
> would make use of the BeanShell to deserialise the object, then pass it
> to the Java Object Inspector (JOI) to view and modify.
>
> Using OWASP Proxy would give you the most flexibility, but would also
> require the most coding. Again, I'd use JOI to view and modify the
> object once it had been deserialised. When you are ready to send it on
> to the server (or back to the client), reserialise the object, and
> package it up in the HTTP message as you found it.
>
> Hope this helps.
>
> Rogan
> P.S. Since you can see the traffic with a sniffer, it is obviously not
> SSL, which makes your life easier, but should be your first finding :-)
>
>
>
> This list is sponsored by Cenzic
> --------------------------------------
> Let Us Hack You. Before Hackers Do!
> It's Finally Here - The Cenzic Website HealthCheck. FREE.
> Request Yours Now!
> http://www.cenzic.com/2009HClaunch_Securityfocus
> --------------------------------------
>
>



-- 
¨˜”°º•C0D3w@lk3r•º°”˜¨

------------------------------------------------------------------------
This list is sponsored by: Information Assurance Certification Review Board

Prove to peers and potential employers without a doubt that you can actually do a proper penetration test. IACRB CPT and CEPT certs require a full practical examination in order to become certified. 

http://www.iacertification.org
------------------------------------------------------------------------
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.