19.09.2017 Views

the-web-application-hackers-handbook

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

802 Chapter 21 n A Web Application Hacker’s Methodology<br />

to <strong>the</strong> server. These controls can be bypassed easily, because you can<br />

send arbitrary requests to <strong>the</strong> server. For example:<br />

<br />

<br />

...<br />

3.2.2 Test each affected input field in turn by submitting input that would<br />

ordinarily be blocked by <strong>the</strong> client-side controls to verify whe<strong>the</strong>r <strong>the</strong>se<br />

are replicated on <strong>the</strong> server.<br />

3.2.3 The ability to bypass client-side validation does not necessarily represent<br />

any vulnerability. Never<strong>the</strong>less, you should review closely what validation<br />

is being performed. Confirm whe<strong>the</strong>r <strong>the</strong> <strong>application</strong> is relying<br />

on <strong>the</strong> client-side controls to protect itself from malformed input. Also<br />

confirm whe<strong>the</strong>r any exploitable conditions exist that can be triggered<br />

by such input.<br />

3.2.4 Review each HTML form to identify any disabled elements, such as<br />

grayed-out submit buttons. For example:<br />

<br />

If you find any, submit <strong>the</strong>se to <strong>the</strong> server, along with <strong>the</strong> form’s o<strong>the</strong>r<br />

parameters. See whe<strong>the</strong>r <strong>the</strong> parameter has any effect on <strong>the</strong> server’s<br />

processing that you can leverage in an attack. Alternatively, use an<br />

automated proxy rule to automatically enable disabled fields, such as<br />

Burp Proxy’s “HTML Modification” rules.<br />

3.3 Test Browser Extension Components<br />

3.3.1 Understand <strong>the</strong> Client Application’s Operation<br />

3.3.1.1 Set up a local intercepting proxy for <strong>the</strong> client technology under review,<br />

and monitor all traffic passing between <strong>the</strong> client and server. If data is<br />

serialized, use a deserialization tool such as Burp’s built-in AMF support<br />

or <strong>the</strong> DSer Burp plug-in for Java.<br />

3.3.1.2 Step through <strong>the</strong> functionality presented in <strong>the</strong> client. Determine any<br />

potentially sensitive or powerful functions, using standard tools within<br />

<strong>the</strong> intercepting proxy to replay key requests or modify server responses.<br />

3.3.2 Decompile <strong>the</strong> Client<br />

3.3.2.1 Identify any applets employed by <strong>the</strong> <strong>application</strong>. Look for any of <strong>the</strong><br />

following file types being requested via your intercepting proxy:<br />

n .class, .jar : Java<br />

n .swf : Flash<br />

n .xap : Silverlight

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!