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 799<br />

au<strong>the</strong>ntication, session management, and access control, and <strong>the</strong> functions<br />

that support <strong>the</strong>m, such as user registration and account recovery.<br />

2.1.3 Identify all <strong>the</strong> more peripheral functions and behavior, such as <strong>the</strong> use<br />

of redirects, off-site links, error messages, and administrative and logging<br />

functions.<br />

2.1.4 Identify any functionality that diverges from <strong>the</strong> standard GUI appearance,<br />

parameter naming, or navigation mechanism used elsewhere in<br />

<strong>the</strong> <strong>application</strong>, and single it out for in-depth testing.<br />

2.2 Identify Data Entry Points<br />

2.2.1 Identify all <strong>the</strong> different entry points that exist for introducing user<br />

input into <strong>the</strong> <strong>application</strong>’s processing, including URLs, query string<br />

parameters, POST data, cookies, and o<strong>the</strong>r HTTP headers processed by<br />

<strong>the</strong> <strong>application</strong>.<br />

2.2.2 Examine any customized data transmission or encoding mechanisms<br />

used by <strong>the</strong> <strong>application</strong>, such as a nonstandard query string format.<br />

Understand whe<strong>the</strong>r <strong>the</strong> data being submitted encapsulates parameter<br />

names and values, or whe<strong>the</strong>r an alternative means of representation<br />

is being used.<br />

2.2.3 Identify any out-of-band channels via which user-controllable or o<strong>the</strong>r<br />

third-party data is being introduced into <strong>the</strong> <strong>application</strong>’s processing.<br />

An example is a <strong>web</strong> mail <strong>application</strong> that processes and renders messages<br />

received via SMTP.<br />

2.3 Identify <strong>the</strong> Technologies Used<br />

2.3.1 Identify each of <strong>the</strong> different technologies used on <strong>the</strong> client side, such as<br />

forms, scripts, cookies, Java applets, ActiveX controls, and Flash objects.<br />

2.3.2 As far as possible, establish which technologies are being used on <strong>the</strong><br />

server side, including scripting languages, <strong>application</strong> platforms, and<br />

interaction with back-end components such as databases and e-mail<br />

systems.<br />

2.3.3 Check <strong>the</strong> HTTP Server header returned in <strong>application</strong> responses, and<br />

also check for any o<strong>the</strong>r software identifiers contained within custom<br />

HTTP headers or HTML source code comments. Note that in some cases,<br />

different areas of <strong>the</strong> <strong>application</strong> are handled by different back-end<br />

components, so different banners may be received.<br />

2.3.4 Run <strong>the</strong> Httprint tool to fingerprint <strong>the</strong> <strong>web</strong> server.<br />

2.3.5 Review <strong>the</strong> results of your content-mapping exercises to identify any<br />

interesting-looking file extensions, directories, or o<strong>the</strong>r URL subsequences

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

Saved successfully!

Ooh no, something went wrong!