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

10<br />

Attacking Back-End<br />

Components<br />

Web <strong>application</strong>s are increasingly complex offerings. They frequently function<br />

as <strong>the</strong> Internet-facing interface to a variety of business-critical resources on <strong>the</strong><br />

back end, including networked resources such as <strong>web</strong> services, back-end <strong>web</strong><br />

servers, mail servers, and local resources such as filesystems and interfaces to <strong>the</strong><br />

operating system. Frequently, <strong>the</strong> <strong>application</strong> server also acts as a discretionary<br />

access control layer for <strong>the</strong>se back-end components. Any successful attack that<br />

could perform arbitrary interaction with a back-end component could potentially<br />

violate <strong>the</strong> entire access control model applied by <strong>the</strong> <strong>web</strong> <strong>application</strong>, allowing<br />

unauthorized access to sensitive data and functionality.<br />

When data is passed from one component to ano<strong>the</strong>r, it is interpreted by<br />

different sets of APIs and interfaces. Data that is considered “safe” by <strong>the</strong> core<br />

<strong>application</strong> may be extremely unsafe within <strong>the</strong> onward component, which<br />

may support different encodings, escape characters, field delimiters, or string<br />

terminators. Additionally, <strong>the</strong> onward component may possess considerably<br />

more functionality than what <strong>the</strong> <strong>application</strong> normally invokes. An attacker<br />

exploiting an injection vulnerability can often go beyond merely breaking <strong>the</strong><br />

<strong>application</strong>’s access control. She can exploit <strong>the</strong> additional functionality supported<br />

by <strong>the</strong> back-end component to compromise key parts of <strong>the</strong> organization’s<br />

infrastructure.<br />

357

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

Saved successfully!

Ooh no, something went wrong!