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.

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

9.4 Test Trust Boundaries<br />

9.4.1 Probe how <strong>the</strong> <strong>application</strong> handles transitions between different types<br />

of trust of <strong>the</strong> user. Look for functionality where a user with a given<br />

trust status can accumulate an amount of state relating to his identity.<br />

For example, an anonymous user could provide personal information<br />

during self-registration, or proceed through part of an account recovery<br />

process designed to establish his identity.<br />

9.4.2 Try to find ways to make improper transitions across trust boundaries<br />

by accumulating relevant state in one area and <strong>the</strong>n switching to a<br />

different area in a way that would not normally occur. For example,<br />

having completed part of an account recovery process, attempt to<br />

switch to an au<strong>the</strong>nticated user-specific page. Test whe<strong>the</strong>r <strong>the</strong> <strong>application</strong><br />

assigns you an inappropriate level of trust when you transition<br />

in this way.<br />

9.4.3 Try to determine whe<strong>the</strong>r you can harness any higher-privileged function<br />

directly or indirectly to access or infer information.<br />

9.5 Test Transaction Logic<br />

9.5.1 In cases where <strong>the</strong> <strong>application</strong> imposes transaction limits, test <strong>the</strong><br />

effects of submitting negative values. If <strong>the</strong>se are accepted, it may be<br />

possible to beat <strong>the</strong> limits by making large transactions in <strong>the</strong> opposite<br />

direction.<br />

9.5.2 Examine whe<strong>the</strong>r you can use a series of successive transactions to bring<br />

about a state that you can exploit for a useful purpose. For example, you<br />

may be able to perform several low-value transfers between accounts<br />

to accrue a large balance that <strong>the</strong> <strong>application</strong>’s logic was intended to<br />

prevent.<br />

9.5.3 If <strong>the</strong> <strong>application</strong> adjusts prices or o<strong>the</strong>r sensitive values based on criteria<br />

that are determined by user-controllable data or actions, first understand<br />

<strong>the</strong> algorithms used by <strong>the</strong> <strong>application</strong>, and <strong>the</strong> point within its logic<br />

where adjustments are made. Identify whe<strong>the</strong>r <strong>the</strong>se adjustments are<br />

made on a one-time basis, or whe<strong>the</strong>r <strong>the</strong>y are revised in response to<br />

fur<strong>the</strong>r actions performed by <strong>the</strong> user.<br />

9.5.4 Try to find ways to manipulate <strong>the</strong> <strong>application</strong>’s behavior to cause it to<br />

get into a state where <strong>the</strong> adjustments it has applied do not correspond<br />

to <strong>the</strong> original criteria intended by its designers.

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

Saved successfully!

Ooh no, something went wrong!