19.09.2017 Views

the-web-application-hackers-handbook

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

70 Chapter 3 n Web Application Technologies<br />

As with Base64, hex-encoded data is usually easy to spot. You should always<br />

attempt to decode any such data that <strong>the</strong> server sends to <strong>the</strong> client to understand<br />

its function.<br />

Remoting and Serialization Frameworks<br />

In recent years, various frameworks have evolved for creating user interfaces in<br />

which client-side code can remotely access various programmatic APIs implemented<br />

on <strong>the</strong> server side. This allows developers to partly abstract away from<br />

<strong>the</strong> distributed nature of <strong>web</strong> <strong>application</strong>s and write code in a manner that is<br />

closer to <strong>the</strong> paradigm of a conventional desktop <strong>application</strong>. These frameworks<br />

typically provide stub APIs for use on <strong>the</strong> client side. They also automatically<br />

handle both <strong>the</strong> remoting of <strong>the</strong>se API calls to <strong>the</strong> relevant server-side functions<br />

and <strong>the</strong> serialization of any data that is passed to those functions.<br />

Examples of <strong>the</strong>se kinds of remoting and serialization frameworks include<br />

<strong>the</strong> following:<br />

n Flex and AMF<br />

n Silverlight and WCF<br />

n Java serialized objects<br />

We will discuss techniques for working with <strong>the</strong>se frameworks, and <strong>the</strong> kinds<br />

of security issues that can arise, in Chapters 4 and 5.<br />

Next Steps<br />

So far, we have described <strong>the</strong> current state of <strong>web</strong> <strong>application</strong> (in)security, examined<br />

<strong>the</strong> core mechanisms by which <strong>web</strong> <strong>application</strong>s can defend <strong>the</strong>mselves,<br />

and taken a brief look at <strong>the</strong> key technologies employed in today’s <strong>application</strong>s.<br />

With this groundwork in place, we are now in a position to start looking at <strong>the</strong><br />

actual practicalities of attacking <strong>web</strong> <strong>application</strong>s.<br />

In any attack, your first task is to map <strong>the</strong> target <strong>application</strong>’s content and<br />

functionality to establish how it functions, how it attempts to defend itself, and<br />

what technologies it uses. The next chapter examines this mapping process<br />

in detail and shows how you can use it to obtain a deep understanding of an<br />

<strong>application</strong>’s attack surface. This knowledge will prove vital when it comes to<br />

finding and exploiting security flaws within your target.

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

Saved successfully!

Ooh no, something went wrong!