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 20 n A Web Application Hacker’s Toolkit 779<br />

It is fair to say that some of today’s scanners do a reasonable job of working<br />

with <strong>the</strong> majority of au<strong>the</strong>ntication and session-handling mechanisms that are<br />

in use. However, <strong>the</strong>re remain numerous cases where scanners struggle. As<br />

a result, <strong>the</strong>y may fail to properly crawl or scan key parts of an <strong>application</strong>’s<br />

attack surface. Because of <strong>the</strong> fully automated way in which standalone scanners<br />

operate, this failure normally is not apparent to <strong>the</strong> user.<br />

Dangerous Effects<br />

In many <strong>application</strong>s, running an unrestricted automated scan without any user<br />

guidance may be quite dangerous to <strong>the</strong> <strong>application</strong> and <strong>the</strong> data it contains.<br />

For example, a scanner may discover an administration page that contains<br />

functions to reset user passwords, delete accounts, and so on. If <strong>the</strong> scanner<br />

blindly requests every function, this may result in access being denied to all<br />

users of <strong>the</strong> <strong>application</strong>. Similarly, <strong>the</strong> scanner may discover a vulnerability<br />

that can be exploited to seriously corrupt <strong>the</strong> data held within <strong>the</strong> <strong>application</strong>.<br />

For example, in some SQL injection vulnerabilities, submitting standard SQL<br />

attack strings such as or 1=1-- causes unforeseen operations to be performed<br />

on <strong>the</strong> <strong>application</strong>’s data. A human being who understands <strong>the</strong> purpose of a<br />

particular function may proceed with caution for this reason, but an automated<br />

scanner lacks this understanding.<br />

Individuating Functionality<br />

There are many situations in which a purely syntactic analysis of an <strong>application</strong><br />

fails to correctly identify its core set of individual functions:<br />

n Some <strong>application</strong>s contain a colossal quantity of content that embodies<br />

<strong>the</strong> same core set of functionality. For example, <strong>application</strong>s such as eBay,<br />

MySpace, and Amazon contain millions of different <strong>application</strong> pages<br />

with different URLs and content, yet <strong>the</strong>se correspond to a relatively small<br />

number of actual <strong>application</strong> functions.<br />

n Some <strong>application</strong>s may have no finite boundary when analyzed from a<br />

purely syntactic perspective. For example, a calendar <strong>application</strong> may<br />

allow users to navigate to any date. Similarly, some <strong>application</strong>s with a<br />

finite amount of content employ volatile URLs or request parameters to<br />

access <strong>the</strong> same content on different occasions, leading scanners to continue<br />

mapping indefinitely.<br />

n The scanner’s own actions may result in <strong>the</strong> appearance of seemingly new<br />

content. For example, submitting a form may cause a new link to appear<br />

in <strong>the</strong> <strong>application</strong>’s interface, and accessing <strong>the</strong> link may retrieve a fur<strong>the</strong>r<br />

form that has <strong>the</strong> same behavior.

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

Saved successfully!

Ooh no, something went wrong!