286 Part II: Developing an Ajax Library^
What They
Want to KnowWhy They Want
to Know It How They Determine It Possible Countermeasures
Web
application
frameworkTo look for bugs
specific to the
development
environmentTo look for
sessioning
exploitsTo look for
configuration or
admin access
defaults to
administration
of determined
frameworkLooking at the file extensions
(.php, .aspx, and so on)Looking for session cookie
header and vanity X-Powered-
By headers in responsesSeeing if error messages
indicate type, version, and setup
of a frameworkLooking for configuration and
Web interface loginsChanging to .html or simply removing
or rewriting file extensionsModifying session cookie name default
to be generic or masking it. Removing
X- response headersDeploying sanitized error messagesMoving standard admin locations
and changing default usernames and
passwords
Database
usedTo understand
SQL injection
syntax
possibilitiesTo determine if
known exploits
existsTo see if direct
admin access to
DB can be foundLooking at error messages by
triggering some problem on a
database driven pageUsing a network scanner to
see what ports are open to the
database and trying to attach
with an admin toolSanitizing your error messagesSetting firewall appropriately and
changing administrator defaults. In
general, avoiding using administrative
accounts for Web application accessDetails about
application
structure and
constructionTo determine
what inputs
and types are
accepted by the
application to see
if some can be
manipulated for
error, XSS exploit,
or even accessSpidering the site and pulling out
the names of form fields, scripts,
and other inputsLooking at robots.txt file for
protected areasLooking for files left on software
with extensions like .bak, .tmp,
.old, or various scratch file
names Web editors use as they
may be fetched in some cases
without execution (for example,
Foo.php.bak)Using Google to see what they
have indexedUsing nonmeaningful names for fields in
deployed code if not to be scriptedPutting a blank file in or adding in
purposeful tripwire directories that don’t
exist to monitor for accessRemoving all scratch files from site. Not
indicating editor used to build pages
in <meta> tags in HTML. Obfuscating
script on server in case it is exposed
accidentally so as not to reveal secrets
like DB access passwordsMaking sure you are aware of what
Google indexes.TABLE 7-1 Web Application Reconnaissance Goals, Methods, and Countermeasures (continued)