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.

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

4.11.2 If <strong>the</strong> <strong>application</strong> generates account activation URLs that are distributed<br />

out-of-band, try to register several new accounts in close succession,<br />

and identify any sequence in <strong>the</strong> URLs you receive. If a pattern can<br />

be determined, try to predict <strong>the</strong> URLs sent to recent and forthcoming<br />

users, and attempt to use <strong>the</strong>se URLs to take ownership of <strong>the</strong>ir<br />

accounts.<br />

4.11.3 Try to reuse a single activation URL multiple times, and see if <strong>the</strong> <strong>application</strong><br />

allows this. If it doesn’t, try locking out <strong>the</strong> target account before<br />

reusing <strong>the</strong> URL, and see if <strong>the</strong> URL still works. Determine whe<strong>the</strong>r this<br />

enables you to set a new password on an active account.<br />

4.12 Test for Insecure Storage<br />

4.12.1 If you gain access to hashed passwords, check for accounts that share<br />

<strong>the</strong> same hashed password value. Try to log in with common passwords<br />

for <strong>the</strong> most common hashed value.<br />

4.12.2 Use an offline rainbow table for <strong>the</strong> hashing algorithm in question to<br />

recover <strong>the</strong> cleartext value.<br />

4.13 Test for Logic Flaws<br />

4.13.1 Test for Fail-Open Conditions<br />

4.13.1.1 For each function in which <strong>the</strong> <strong>application</strong> checks a user’s credentials,<br />

including <strong>the</strong> login and password change functions, walk through <strong>the</strong><br />

process in <strong>the</strong> normal way, using an account you control. Note every<br />

request parameter submitted to <strong>the</strong> <strong>application</strong>.<br />

4.13.1.2 Repeat <strong>the</strong> process numerous times, modifying each parameter in turn<br />

in various unexpected ways designed to interfere with <strong>the</strong> <strong>application</strong>’s<br />

logic. For each parameter, include <strong>the</strong> following changes:<br />

n Submit an empty string as <strong>the</strong> value.<br />

n Remove <strong>the</strong> name/value pair.<br />

n Submit very long and very short values.<br />

n Submit strings instead of numbers, and vice versa.<br />

n Submit <strong>the</strong> same named parameter multiple times, with <strong>the</strong> same<br />

and different values.

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

Saved successfully!

Ooh no, something went wrong!