Index
Note: Page numbers followed by f indicate figures and t indicate tables.
A
Access-control-request-headers
247
Access-control-request-method
247
American Standard Code for Information Interchange (ASCII)
server-side HTML filter
29
seven-bit encoding characters
17
Shift_JIS
32, 32t
whitespace
33–34
Audience
2
B
Basic multilingual plane (BMP)
18
Browser quirks
comments
86–87
multiline strings
85
parser
85–86
regular expression
85, 86
Bypasses and attacks mitigation
11
code injections
HTML injection and cross-site scripting
218–220
Web security
218
DOM protection
array detection
228–229
closure, definition
231
code replacement
229–230
defineProperty
232–235
extendWindow method
231
Firefox function
226–227
getter and setter syntax
231–232
Internet Explorer
232
JavaScript code
226
layers
230
object handling
230
onpropertychange event
234
proxy functions
231
sandboxing
227–230
SOP
227
styles property
234
top window reference
227
offensive computing
217
server- and client-side databases
217
Web application bugs
218
C
Cascading style sheets (CSSs)
10
algorithm
131–132
at-rules
@charset
127–128
@font-face
129
@import
128–129
attacks
attribute reader
137–138
clickjacking
133f
crawler and navigation monitor
139
decompilation
135–137
history
138–139
IE6 and CSS2
134–135
Internet Explorer
147
LAN scanner
139
remote stylesheet inclusion
139–148
UI redressing
132–134
URL
148
conditional comments
50
CSS3
149
CSS1 vs. CSS2
126
data theft
243–244
declarations
130–131
entities
64
HTML5
239
HTML vs. JavaScript
126
JavaScript URIs
66–67
layout engine
64
parsers
220
rulesets and selectors
129–130
syntax
126
Web security model
243–244
Character data (CDATA)
JavaScript execution
20
Opera
20
predefined character sequence
18
user agents
19–20, 19t
Client-side filters
bypassing
205–213
NoScript design
204
vs. traditional
203f
web vulnerability
204
Crossdomain.xml files
altCrossDomainXMLFiles
265
APIs
264
getRequestProperty method
264–265
global wildcard
264
Java SE 6.10
264
JNLP files
265–266
site-control element
265
user-agent string
266
Cross-origin resource sharing (CORS) mechanism
actual request
247
actual response
247, 248f, 249f
preflight request
246
preflight response
247
Web site
246
Cross Site Request Forgery (CSRF)
240–241
D
Database management system (DBMS)
applications
178–179
functions
183–184
intermediary characters
186, 186t
language elements
182–183
MySQL
179
SELECT
181
SQL injections
221
XML
190
Data theft
error messages
243
Data URIs
Acid2 test
57
arbitrary whitespace
59
bandwidth
56–57
base64 checkbox
58
DOM
56
event handlers
60–62
GHex
56, 56f
HTML5
autofocus attribute
68
Chromium and Opera
68–69
‹event-source›/‹eventsource›
69
multimedia objects
67–68
onblur event handler
69
Opera 10.5
70
Opera test-cases-domain
69–70
quirky rendering bugs
70
Web Forms 2.0 repetition model
70
WHATWG
67
W3Schools domain
68
XHTML
68
MIME type
57–58
style attributes
chameleon files
63
CSRF request
62
CSS-based console
66–67
CSS entities
64
CSS layout engine
64
HTML+TIME
64–65
Internet Explorer tested versions
65–66
onmouseover
62
Opera
66
sandbox object
67
social networking platform
63–64
unicode whitespace
65
vbscript protocol handler
66
XBL file
62–63
style tags
60
text/HTML
58–59
unicode entity
59–60
UTF-7 and UTF-16 character
58
Denial-of-service regular expression
213–215
DNS request
239, 267
Document type definitions (DTDs)
14, 14t, 15t
Document.URL
95
E
E4X
HTML
103
JavaScript comments
104
undefined object
102
XML
103
Extensible Hypertext Markup Language (XHTML)
14
F
Facebook Markup Language (FBML)
120
Filtering
2–3
Form Interpreter (FI)
151
G
Graphics interchange format (GIF)
156
Great JavaScript Charwall
121
H
HyperText Markup Language (HTML)
9
ASCII range
17–18
attack and defense
13
BMP
18
browser market competitors
24
CDATA
JavaScript execution
20
Opera
20
predefined character sequence
18
user agents
19–20, 19t
comments
20–21
cross-domain XHR problem
23
doctype declaration
14–15
DTDs
14, 14t, 15t
erroneous markup handling method
21–22
injection and cross-site scripting
CSS parsers
220
HTML Purifier
219–220
JavaScript code
219
Markdown
219
PHPIDS attack detection
220
safe HTML
219
text format
218–219
Web application filter
218–219
ISO/IEC 8859-15 character set
17–18
markup obfuscation
Mozilla Foundation
24
Netscape Navigator
22–23
remote code execution flaw
23
rendering engines
22
semantics and structure
23
SGML
13
strings and data types
13
URIs
broken protocol handlers
54–55
data URIs
JavaScript URIs
53–54
UTF-8 character set
18
Web browser
23
Web standards
24
XML
data islands
77
decimal and hexadecimal entities
72
default behaviors
76
design
71
DoS
72
entities
73–74
Firefox
72–73
HTC file
75–76
HTML+TIME
76
-moz-binding
74–75
W3C
71
XBL
75
I
Iframe attribute
name attribute
93
sandbox attribute
251
seamless attribute
251
srcdoc attribute
252
International Obfuscated C Code Contest (IOCCC)
105
Internet Explorer filters
attacks
209–213
compatibility, performance, and security
209
XSS filter
bypasses
208–209
JavaScript
208
23 versions
205–207
J
JAR file
262–263, 264
JavaScript (JScript)
compact value
100
conditional comments
101–102
encode value
100–101
encoding
combining
90–91
hexadecimal escapes
89–90
octal escapes
90
unicode escapes
87–89
execScript function
102
vs. HTML
126
nonalphanumeric
arbitrary JavaScript
121
arithmetic operators
107, 107t
ASCII
116
assignment operators
107, 107t
atob
118
binary data
118
Boolean
110
code execution
121–122
false string
111
FBML
120
filter blocking
120
Great JavaScript Charwall
121
IOCCC
105
native objects
110
not a number (NaN)
109–110
obfuscation
117
octal escapes
116
plain filter circumvention
119
sandboxing algorithm
120
sort function
114
sort method
112
static method
113–114
string indexes
107
toString method
118
true string
111
window
109, 112
zero conversion
110
zero creation
107–108, 108t
syntax
alert
81–82
arrays
82
browser quirks
84–87
object property
83
strings
83
window object
81–82
variables
alphanumeric characters
91
location.hash variable
94–95
name variable
92–94
unicode
95–96
URL
95
user-defined
91–92
VBScript
9
JavaScript Object Notation (JSON)
242–243
JSReg
228
M
Markup obfuscation
attributes and delimiters
attribute name and value characters
36, 36t
attribute value delimiters
37, 37t
JavaScript language element
38
size attribute, ‹font› tag
36–37
URL-encoding
38
closing tags
40–42
conditional comments
‹comment› tag
52
CSS browser
50
JScript layer
52
outside and inside attributes
52–53
Trident layout engine
51
forensics
25
JavaScript code alert(1) execution
24
JavaScript execution
about:blank, page
43
applet tags
47–48
body tags
44
data attribute
46
DOM
46
“encrypted” scripts
42
frameset tags
44–45
href attribute
45–46
http-equiv attribute
49
id/name attribute
48
language attribute
42
object tag
46
onload attribute
42–43
Opera
46–47
quirks modes
47
‹script› tags
42
trigger script execution
43–44
URIs
49
XML iframe
46
multiple same-named attributes
Gecko-based browsers
39
lowsrc attribute
39
onerror attribute
38
onmouseover
38–39
src attribute
39
style attribute
38–39, 40
type attribute
38
xmlns, XML namespace attribute
40
PHP
28
separators
ASCII whitespace
33–34
DoS attacks
35
PCRE
34
tag name and attribute characters
34, 34t
unicode character class
34–35
UTF-8 character
34
whitespace character
34–35
tag names obfuscation
character set and PHP-based application
30
Chrome charset
32
chr( ), PHP code
30
decimal ASCII
32, 32t
Firefox parser bug
33
injection, Web site
33
Japanese character set
31
non-ASCII characters
29
nullbyte
29, 30, 31, 33
server-side HTML filter
29
strip characters
30
Trident layout engine
29
XSS attacks/SQL injection
32
technical requirements
26
techniques
24–25
Ubuntu 9.10 platform
26
UTF-8 character
28
valid markup structure
27, 27t
Web application input filters
25
Web sites
26
Microsoft BlueHat security conference
259
Microsoft Data Access Components (MDAC)
223
N
Nonalphanumeric JavaScript
10
arithmetic operators
107, 107t
assignment operators
107, 107t
Boolean
110
character creation
ASCII
116
atob
118
binary data
118
obfuscation
117
octal escapes
116
toString method
118
false string
111
FBML
120
IOCCC
105
minimalistic sets
arbitrary JavaScript
121
code execution
121–122
filter blocking
120
Great JavaScript Charwall
121
native objects
110
not a number (NaN)
109–110
obfuscation process
108–109
plain filter circumvention
119
sandboxing algorithm
120
sort function
114
sort method
112
static method
113–114
string indexes
107
toString method
113
true string
111
window
109, 112
zero conversion
110
zero creation
107–108, 108t
O
Open Web Application Security Project (OWASP) Validation Regex Repository
217–218
Oracle
267
Oracle Express Edition
180–181
P
Perl Compatible Regular Expressions (PCRE)
34
Personal Homepage (PHP)
10
applications
226
attacker-controlled PHP code
224–225
auto_prepend_file
225–226
BBCode
226
code execution vulnerability
223–224
functions
225
Google Code Search Engine
224
history
form interpreter (FI)
151
security and bugs
153
versions
152, 152t
Zend Engine
152
include and require statements
224
numerical data types
representation
157–158
syntax
158
type juggling technique
157
values
157
obfuscation
code samples
153–154
file extension
155
GIF
156
runtime
154
snippet
156–157
Web server
154
strings
anonymous and variable functions
173–174
arrays
160
ASCII
162
backtick notation
170–171
code execution
167–169
curly bracket notation
166–167
encryption and decryption functions
162
escape character
159–160
evaluation
171
heredoc and nowdoc syntax
161
lambdas
172–173
mixing and comments
165
phpinfo( ) function
160–161
sneak past filter rules
162
superglobals
variable variables
165–166
Web scanning
224
phpMyAdmin (PMA)
179
R
Regular expressions
character class
6, 7t
components
4, 4t
definition
4
greedy characters
6
nongreedy characters
6
restricted repetition
8, 8t
test string
4, 5t
Rulesets and selectors
129–130
S
Same Origin Policy (SOP)
crossdomain.xml file
246
cross-site information exchange
245
DOM-based solutions
245
location.hash feature
227
Web security model
241
XMLHttpRequest
245
Scalable vector graphics (SVG)
77–79
Server-side Web development
9
Standard Generalized Markup Language (SGML)
13
Strings
PHP
anonymous and variable functions
173–174
arrays
160
ASCII
162
backtick notation
170–171
code execution
167–169
curly bracket notation
166–167
encryption and decryption functions
162
escape character
159–160
evaluation
171
heredoc and nowdoc syntax
161
lambdas
172–173
mixing and comments
165
phpinfo( ) function
160–161
sneak past filter rules
162
superglobals
162–165
variable variables
165–166
SQL
escaping
189–190
hexadecimal notation
188–189
regular notation and delimiting
187–188
unicode
189
Structured English Query Language (SEQUEL)
177
Structured Query Language (SQL)
10
browser databases
executeSql
194
openDatabase object
193
SQLite
194
comments
MySQL-specific code
192–193
regular in-query
191–192
concatenation-based bugs
222
first version
177
language elements
functions
183–184
intermediary characters
185–187
operators
184–185
Microsoft SQL procedure
223
MySQL-specific code
222
obfuscation
195–196
Oracle Express Edition
180–181
PMA
179
proxy solution
223
query form
180f
query structure
222–223
SELECT query
181
stacking queries
181–182
strings
escaping
189–190
hexadecimal notation
188–189
regular notation and delimitation
187–188
unicode
189
WAFs
221
wafw00f tool
221
Web application security
223
Web sites
221–222
Superglobals
encryption
165
obfuscation
164
PHP
162, 163t
_SERVER array
164
T
Text/html-sandboxed content type
253–255
cross-domain file
253
iframe@sandbox model
255
legacy browsers
254
MIME type
253
Web servers
253–254
Type juggling technique
157
U
Uniform Messaging Policy (UMP)
248–249
V
VBScript
comments
97
encoding
98–99
end of statement
98
events
97
execScript function
99
functions
97–98
W
Web application firewalls (WAFs)
221
applications
199
bypassing WAFs
attack vectors
200
filters
200
whitelisting mode
201–202
cross-site scripting
202
denial-of-service attacks
213–215
public Web sites
199–200
Web attacks
203
Web applications
1
Content-Security-Policy header
257
cross-site scripting filters
238
flash plug-in
allowScriptAccess argument
258
always argument
258
arbitrary HTTP headers
259–260, 260f
Flash movie
258
LoadMovie method
258
never argument
258
sameDomain argument
258
Security.allowDomain API
258–259
HTML5
238
cross-site scripting filters
245
CSS3
239
features
244–245
JavaScript URLs origin
249–251
sandbox attribute
251
seamless attribute
251
security project
245
srcdoc attribute
252
text/html-sandboxed content type
253–255
XML bindings
255–256
Java plug-in
AppletNode
261
crossdomain.xml files
DNS rebinding attacks
266–267
Java applets
260–261
Java-based cross-site scripting
262–264
Java's APIs
261
Java security model
260
shared host attack
261–262
JavaScript code
238
‹meta› tag
238–239
‹param› tag
239
security ramifications
237
security-related extensions
256
Strict-Transport-Security header
256–257
toStaticHTML method
238
URL parsing
239
Web security model
error messages
243
HTTP request
240
origin
241–242
Web server
240–241
Web sites
239
web technology standards
257–258
WHATWG
237–238
whitelisting property
238–239
X-Frame-Options header
256
X-XSS-Protection header
256
Web architecture
9
Web Hypertext Application Technology Working Group (WHATWG)
67, 237–238
Web security and technology
11
World Wide Web Consortium (W3C)
238
JavaScript execution
42–43
WHATWG
237–238
XML
71
X
XSS filter
cross-site scripting attacks
211
design
210
JavaScript
210–211
malicious attacks
210
trigger string
212
Z
Zend Engine
152
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.116.239.195