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.

Chapter 4 n Mapping <strong>the</strong> Application 95<br />

WahhBank.<br />

login<br />

WahhBank.<br />

home<br />

TransferFunds.<br />

selectAccounts<br />

BillPayment.<br />

addPayee<br />

BillPayment.<br />

selectPayee<br />

WahhBank.<br />

logout<br />

TransferFunds.<br />

enterAmount<br />

BillPayment.<br />

enterAmount<br />

TransferFunds.<br />

confirmTransfer<br />

BillPayment.<br />

confirmPayment<br />

Figure 4-10: A mapping of <strong>the</strong> functional paths within a <strong>web</strong> <strong>application</strong><br />

Representing an <strong>application</strong>’s functionality in this way is often more useful<br />

even in cases where <strong>the</strong> usual picture based on <strong>application</strong> pages can be applied<br />

without any problems. The logical relationships and dependencies between<br />

different functions may not correspond to <strong>the</strong> directory structure used within<br />

URLs. It is <strong>the</strong>se logical relationships that are of most interest to you, both in<br />

understanding <strong>the</strong> <strong>application</strong>’s core functionality and in formulating possible<br />

attacks against it. By identifying <strong>the</strong>se, you can better understand <strong>the</strong> expectations<br />

and assumptions of <strong>the</strong> <strong>application</strong>’s developers when implementing<br />

<strong>the</strong> functions. You also can attempt to find ways to violate <strong>the</strong>se assumptions,<br />

causing unexpected behavior within <strong>the</strong> <strong>application</strong>.<br />

In <strong>application</strong>s where functions are identified using a request parameter, ra<strong>the</strong>r<br />

than <strong>the</strong> URL, this has implications for <strong>the</strong> enumeration of <strong>application</strong> content.<br />

In <strong>the</strong> previous example, <strong>the</strong> content discovery exercises described so far are<br />

unlikely to uncover any hidden content. Those techniques need to be adapted<br />

to <strong>the</strong> mechanisms actually used by <strong>the</strong> <strong>application</strong> to access functionality.

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

Saved successfully!

Ooh no, something went wrong!