About the Author |
|
v | |
Acknowledgements |
|
vii | |
Introduction |
|
xiii | |
|
|
1 | (22) |
|
The New Document Object Model (DOM) |
|
|
2 | (1) |
|
Cross-Origin Resource Sharing (CORS) |
|
|
3 | (3) |
|
|
6 | (8) |
|
|
10 | (1) |
|
|
11 | (2) |
|
|
13 | (1) |
|
|
14 | (2) |
|
|
16 | (1) |
|
|
16 | (3) |
|
|
19 | (1) |
|
|
19 | (1) |
|
|
20 | (1) |
|
|
20 | (3) |
|
Chapter 2 HTML Injection & Cross-Site Scripting (XSS) |
|
|
23 | (56) |
|
Understanding HTML Injection |
|
|
24 | (43) |
|
Identifying Points of Injection |
|
|
30 | (7) |
|
Identifying the Type of Reflection |
|
|
37 | (5) |
|
Identifying the Injection's Rendered Context |
|
|
42 | (3) |
|
Putting the Hack Together |
|
|
45 | (3) |
|
|
48 | (8) |
|
|
56 | (3) |
|
Bypassing Weak Exclusion Lists |
|
|
59 | (1) |
|
Leveraging Browser Quirks |
|
|
60 | (3) |
|
|
63 | (3) |
|
|
66 | (1) |
|
Employing Countermeasures |
|
|
67 | (11) |
|
Fixing a Static Character Set |
|
|
68 | (1) |
|
Normalizing Character Sets and Encoding |
|
|
69 | (1) |
|
|
70 | (1) |
|
Beware of Exclusion Lists and Regexes |
|
|
71 | (2) |
|
Reuse, Don't Reimplement, Code |
|
|
73 | (1) |
|
|
73 | (3) |
|
Browsers' Built-In XSS Defenses |
|
|
76 | (2) |
|
|
78 | (1) |
|
Chapter 3 Cross-Site Request Forgery (CSRF) |
|
|
79 | (28) |
|
Understanding Cross-Site Request Forgery |
|
|
80 | (13) |
|
|
83 | (2) |
|
Request Forgery via Forced Browsing |
|
|
85 | (4) |
|
Attacking Authenticated Actions without Passwords |
|
|
89 | (1) |
|
Dangerous Liaison: CSRF and HTML Injection |
|
|
89 | (1) |
|
Be Wary of the Tangled Web |
|
|
90 | (1) |
|
Variation on a Theme: Clickjacking |
|
|
91 | (2) |
|
Employing Countermeasures |
|
|
93 | (11) |
|
Heading in the Right Direction |
|
|
94 | (9) |
|
Defending the Web Browser |
|
|
103 | (1) |
|
Vulnerability & Verisimilitude |
|
|
104 | (1) |
|
|
104 | (3) |
|
Chapter 4 SQL Injection & Data Store Manipulation |
|
|
107 | (34) |
|
Understanding SQL Injection |
|
|
109 | (21) |
|
Hacking Tangents: Mathematical and Grammatical |
|
|
112 | (1) |
|
|
113 | (9) |
|
|
122 | (3) |
|
|
125 | (1) |
|
|
126 | (1) |
|
|
127 | (1) |
|
SQL Injection Without SQL |
|
|
128 | (2) |
|
Employing Countermeasures |
|
|
130 | (10) |
|
|
131 | (1) |
|
|
131 | (6) |
|
|
137 | (2) |
|
Stay Current with Database Patches |
|
|
139 | (1) |
|
|
140 | (1) |
|
Chapter 5 Breaking Authentication Schemes |
|
|
141 | (30) |
|
Understanding Authentication Attacks |
|
|
142 | (10) |
|
Replaying the Session Token |
|
|
142 | (3) |
|
|
145 | (1) |
|
|
146 | (3) |
|
|
149 | (1) |
|
Cross-Site Scripting (XSS) |
|
|
149 | (1) |
|
|
150 | (1) |
|
|
151 | (1) |
|
Employing Countermeasures |
|
|
152 | (16) |
|
|
153 | (2) |
|
Use Secure Authentication Schemes |
|
|
155 | (8) |
|
|
163 | (1) |
|
|
164 | (1) |
|
|
165 | (1) |
|
Logging and Triangulation |
|
|
166 | (1) |
|
|
166 | (2) |
|
|
168 | (1) |
|
|
168 | (3) |
|
Chapter 6 Abusing Design Deficiencies |
|
|
171 | (38) |
|
Understanding Logic & Design Attacks |
|
|
174 | (28) |
|
|
175 | (1) |
|
Exploiting Policies & Practices |
|
|
175 | (5) |
|
|
180 | (3) |
|
|
183 | (1) |
|
|
183 | (5) |
|
Implementation Errors in Cryptography |
|
|
188 | (13) |
|
|
201 | (1) |
|
Employing Countermeasures |
|
|
202 | (4) |
|
|
202 | (1) |
|
Creating Robust Test Cases |
|
|
203 | (1) |
|
Mapping Policies to Controls |
|
|
204 | (1) |
|
|
205 | (1) |
|
|
205 | (1) |
|
|
205 | (1) |
|
|
206 | (3) |
|
Chapter 7 Leveraging Platform Weaknesses |
|
|
209 | (30) |
|
Understanding the Attacks |
|
|
210 | (25) |
|
Recognizing Patterns, Structures, & Developer Quirks |
|
|
210 | (15) |
|
Targeting the Operating System |
|
|
225 | (5) |
|
|
230 | (1) |
|
|
230 | (5) |
|
Employing Countermeasures |
|
|
235 | (3) |
|
|
235 | (1) |
|
|
236 | (1) |
|
Blacklisting Insecure Functions |
|
|
236 | (1) |
|
|
237 | (1) |
|
Restricting Network Connections |
|
|
237 | (1) |
|
|
238 | (1) |
|
Chapter 8 Browser & Privacy Attacks |
|
|
239 | (24) |
|
Understanding Malware and Browser Attacks |
|
|
240 | (18) |
|
|
241 | (3) |
|
Plugging in to Browser Plugins |
|
|
244 | (2) |
|
|
246 | (1) |
|
|
247 | (2) |
|
|
249 | (9) |
|
Employing Countermeasures |
|
|
258 | (3) |
|
Configure SSL/TLS Securely |
|
|
258 | (1) |
|
|
259 | (1) |
|
|
260 | (1) |
|
|
260 | (1) |
|
|
261 | (1) |
|
|
261 | (2) |
Index |
|
263 | |