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 21 n A Web Application Hacker’s Methodology 813<br />

to track <strong>the</strong> state of <strong>the</strong> process across successive stages, it may be<br />

possible to interfere with <strong>the</strong> <strong>application</strong>’s logic by modifying <strong>the</strong>se<br />

parameters in crafted ways.<br />

4.13.2.5 If any part of <strong>the</strong> process involves <strong>the</strong> <strong>application</strong>’s presenting a randomly<br />

varying challenge, test for two common defects:<br />

n If a parameter specifying <strong>the</strong> challenge is submitted along with <strong>the</strong><br />

user’s response, determine whe<strong>the</strong>r you can effectively choose your<br />

own challenge by modifying this value.<br />

n Try proceeding as far as <strong>the</strong> varying challenge several times with<br />

<strong>the</strong> same username, and determine whe<strong>the</strong>r a different challenge<br />

is presented. If it is, you can effectively choose your own challenge<br />

by proceeding to this stage repeatedly until your desired<br />

challenge is presented.<br />

4.14 Exploit Any Vulnerabilities to Gain<br />

Unauthorized Access<br />

4.14.1 Review any vulnerabilities you have identified within <strong>the</strong> various au<strong>the</strong>ntication<br />

functions, and identify any that you can leverage to achieve<br />

your objectives in attacking <strong>the</strong> <strong>application</strong>. This typically involves<br />

attempting to au<strong>the</strong>nticate as a different user — if possible, a user with<br />

administrative privileges.<br />

4.14.2 Before mounting any kind of automated attack, note any account<br />

lockout defenses you have identified. For example, when performing<br />

username enumeration against a login function, submit a common<br />

password with each request ra<strong>the</strong>r than a completely arbitrary value<br />

so as not to waste a failed login attempt on every username discovered.<br />

Similarly, perform any password-guessing attacks on a breadth-first,<br />

not depth-first, basis. Start your word list with <strong>the</strong> most common weak<br />

passwords, and proceed through this list, trying each item against<br />

every enumerated username.<br />

4.14.3 Take account of <strong>the</strong> password quality rules and <strong>the</strong> completeness of<br />

password validation when constructing word lists to use in any passwordguessing<br />

attack to avoid impossible or superfluous test cases.<br />

4.14.4 Use <strong>the</strong> techniques described in Chapter 14 to automate as much<br />

work as possible and maximize <strong>the</strong> speed and effectiveness of your<br />

attacks.

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

Saved successfully!

Ooh no, something went wrong!