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 5 n Bypassing Client-Side Controls 153<br />

Native Client Components<br />

Some <strong>application</strong>s need to perform actions within <strong>the</strong> user’s computer that cannot<br />

be conducted from inside a browser-based VM sandbox. In terms of client-side<br />

security controls, here are some examples of this functionality:<br />

n Verifying that a user has an up-to-date virus scanner<br />

n Verifying that proxy settings and o<strong>the</strong>r corporate configuration are in force<br />

n Integrating with a smartcard reader<br />

Typically, <strong>the</strong>se kinds of actions require <strong>the</strong> use of native code components,<br />

which integrate local <strong>application</strong> functionality with <strong>web</strong> <strong>application</strong> functionality.<br />

Native client components are often delivered via ActiveX controls. These are<br />

custom browser extensions that run outside <strong>the</strong> browser sandbox.<br />

Native client components may be significantly harder to decipher than o<strong>the</strong>r<br />

browser extensions, because <strong>the</strong>re is no equivalent to intermediate bytecode.<br />

However, <strong>the</strong> principles of bypassing client-side controls still apply, even if this<br />

requires a different toolset. Here are some examples of popular tools used for<br />

this task:<br />

n OllyDbg is a Windows debugger that can be used to step through native<br />

executable code, set breakpoints, and apply patches to executables, ei<strong>the</strong>r<br />

on disk or at runtime.<br />

n IDA Pro is a disassembler that can produce human-readable assembly<br />

code from native executable code on a wide variety of platforms.<br />

Although a full-blown description is outside <strong>the</strong> scope of this book, <strong>the</strong> following<br />

are some useful resources if you want to know more about reverse<br />

engineering of native code components and related topics:<br />

n Reversing: Secrets of Reverse Engineering by Eldad Eilam<br />

n Hacker Disassembling Uncovered by Kris Kaspersky<br />

n The Art of Software Security Assessment by Mark Dowd, John McDonald,<br />

and Justin Schuh<br />

n Fuzzing for Software Security Testing and Quality Assurance (Artech House<br />

Information Security and Privacy) by Ari Takanen, Jared DeMott, and<br />

Charlie Miller<br />

n The IDA Pro Book: The Unofficial Guide to <strong>the</strong> World’s Most Popular Disassembler<br />

by Chris Eagle<br />

n www.acm.uiuc.edu/sigmil/RevEng<br />

n www.uninformed.org/?v=1&a=7

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

Saved successfully!

Ooh no, something went wrong!