Contents
1.
Foreword
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
2.
Attention Hackers! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
3.
Introduction
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
How It All Started
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
Just 30 Examples and My First Sale . . . . . . . . . . . . . . . . . . . . . . . .
5
Who This Book Is Written For . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
Chapter Overview
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
Word of Warning and a Favour . . . . . . . . . . . . . . . . . . . . . . . . . .
10
4.
Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
5.
HTML Injection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
1. Coinbase Comments
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
2. HackerOne Unintended HTML Inclusion . . . . . . . . . . . . . . . . . . .
16
3. Within Security Content Spoofing . . . . . . . . . . . . . . . . . . . . . . .
17
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
6.
HTTP Parameter Pollution . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
1. HackerOne Social Sharing Buttons
. . . . . . . . . . . . . . . . . . . . . .
21
2. Twitter Unsubscribe Notifications . . . . . . . . . . . . . . . . . . . . . . .
22
3. Twitter Web Intents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
7.
CRLF Injection
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
1. Twitter HTTP Response Splitting . . . . . . . . . . . . . . . . . . . . . . . .
27
2. v.shopify.com Response Splitting . . . . . . . . . . . . . . . . . . . . . . .
29
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
CONTENTS
8.
Cross-Site Request Forgery . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
1. Shopify Export Installed Users . . . . . . . . . . . . . . . . . . . . . . . . .
32
2. Shopify Twitter Disconnect . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
3. Badoo Full Account Takeover
. . . . . . . . . . . . . . . . . . . . . . . . .
34
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
9.
Application Logic Vulnerabilities . . . . . . . . . . . . . . . . . . . . . . . . .
37
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
1. Shopify Administrator Privilege Bypass . . . . . . . . . . . . . . . . . . . .
38
2. Starbucks Race Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
3. Binary.com Privilege Escalation . . . . . . . . . . . . . . . . . . . . . . . .
40
4. HackerOne Signal Manipulation . . . . . . . . . . . . . . . . . . . . . . . .
41
5. Shopify S3 Buckets Open . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
6. HackerOne S3 Buckets Open . . . . . . . . . . . . . . . . . . . . . . . . . .
42
7. Bypassing GitLab Two Factor Authentication . . . . . . . . . . . . . . . . .
45
8. Yahoo PHP Info Disclosure . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
9. HackerOne Hacktivity Voting . . . . . . . . . . . . . . . . . . . . . . . . . .
48
10. Accessing PornHub’s Memcache Installation . . . . . . . . . . . . . . . .
51
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
10. Cross-Site Scripting Attacks . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
56
1. Shopify Wholesale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
56
2. Shopify Giftcard Cart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
3. Shopify Currency Formatting . . . . . . . . . . . . . . . . . . . . . . . . . .
60
4. Yahoo Mail Stored XSS
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
5. Google Image Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
6. Google Tagmanager Stored XSS . . . . . . . . . . . . . . . . . . . . . . . .
64
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
11. SQL Injection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
1. Drupal SQL Injection
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
12. Open Redirect Vulnerabilities . . . . . . . . . . . . . . . . . . . . . . . . . . .
71
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71
Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71
1. Shopify Theme Install Open Redirect . . . . . . . . . . . . . . . . . . . . .
71
CONTENTS
2. Shopify Login Open Redirect . . . . . . . . . . . . . . . . . . . . . . . . . .
72
3. HackerOne Interstitial Redirect
. . . . . . . . . . . . . . . . . . . . . . . .
73
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
74
13. Sub Domain Takeover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
1. Ubiquiti sub domain Takeover . . . . . . . . . . . . . . . . . . . . . . . . .
75
2. Scan.me Pointing to Zendesk
. . . . . . . . . . . . . . . . . . . . . . . . .
76
3. Swiping Facebook Official Access Tokens . . . . . . . . . . . . . . . . . . .
77
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
80
14. XML External Entity Vulnerability . . . . . . . . . . . . . . . . . . . . . . . . .
81
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
81
Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
85
1. Read Access to Google . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
85
2. Facebook XXE with Word . . . . . . . . . . . . . . . . . . . . . . . . . . . .
87
3. Wikiloc XXE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
89
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
92
15. Remote Code Execution
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
93
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
93
Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
93
1. Polyvore ImageMagick . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
93
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
95
16. Template Injection
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
96
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
96
Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
97
1. Uber Angular Template Injection
. . . . . . . . . . . . . . . . . . . . . . .
97
2. Uber Template Injection . . . . . . . . . . . . . . . . . . . . . . . . . . . .
98
3. Rails Dynamic Render . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
101
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
102
17. Server Side Request Forgery . . . . . . . . . . . . . . . . . . . . . . . . . . . .
103
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
103
Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
103
1. ESEA SSRF and Querying AWS Metadata
. . . . . . . . . . . . . . . . . . .
103
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
105
18. Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
106
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
106
Buffer Overflow
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
106
Read out of Bounds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
107
CONTENTS
Memory Corruption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
109
Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
110
1. PHP ftp_genlist() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
110
2. Python Hotshot Module
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
111
3. Libcurl Read Out of Bounds
. . . . . . . . . . . . . . . . . . . . . . . . . .
112
4. PHP Memory Corruption . . . . . . . . . . . . . . . . . . . . . . . . . . . .
113
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
114
19. Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
115
Information Gathering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
115
Application Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
118
Digging Deeper
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
119
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
121
20. Vulnerability Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
122
Read the disclosure guidelines. . . . . . . . . . . . . . . . . . . . . . . . . . . .
122
Include Details. Then Include More.
. . . . . . . . . . . . . . . . . . . . . . . .
122
Confirm the Vulnerability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
123
Show Respect for the Company . . . . . . . . . . . . . . . . . . . . . . . . . . .
123
Bounties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
125
Don’t Shout Hello Before Crossing the Pond . . . . . . . . . . . . . . . . . . . .
125
Parting Words . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
126
21. Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
128
Burp Suite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
128
Knockpy
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
128
HostileSubBruteforcer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
129
sqlmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
129
Nmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
129
Eyewitness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
130
Shodan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
130
What CMS
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
130
Nikto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
130
Recon-ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
131
idb
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
131
Wireshark
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
131
Bucket Finder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
132
Google Dorks
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
132
IPV4info.com
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
132
JD GUI
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
132
Mobile Security Framework
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
132
Firefox Plugins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
133
FoxyProxy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
133
CONTENTS
User Agent Switcher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
133
Firebug
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
133
Hackbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
133
Websecurify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
133
Cookie Manager+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
133
XSS Me
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
134
Offsec Exploit-db Search
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
134
Wappalyzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
134
22. Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
135
Online Training
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
135
Web Application Exploits and Defenses . . . . . . . . . . . . . . . . . . . . .
135
The Exploit Database
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
135
Udacity
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
135
Bug Bounty Platforms
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
135
Hackerone.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
135
Bugcrowd.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
136
Synack.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
136
Cobalt.io
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
136
Video Tutorials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
136
youtube.com/yaworsk1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
136
Seccasts.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
136
Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
136
OWASP.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
136
Hackerone.com/hacktivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
137
Twitter #infsec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
137
Twitter @disclosedh1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
137
Web Application Hackers Handbook . . . . . . . . . . . . . . . . . . . . . . .
137
Bug Hunters Methodology
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
137
Recommended Blogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
137
philippeharewood.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
137
Philippe’s Facebook Page - www.facebook.com/phwd-113702895386410 . .
137
fin1te.net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
138
NahamSec.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
138
blog.it-securityguard.com
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
138
blog.innerht.ml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
138
blog.orange.tw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
138
Portswigger Blog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
138
Nvisium Blog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
138
blog.zsec.uk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
138
Bug Crowd Blog
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
139
HackerOne Blog
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
139
CONTENTS
23. Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
140
Black Hat Hacker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
140
Buffer Overflow
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
140
Bug Bounty Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
140
Bug Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
140
CRLF Injection
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
140
Cross Site Request Forgery . . . . . . . . . . . . . . . . . . . . . . . . . . . .
141
Cross Site Scripting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
141
HTML Injection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
141
HTTP Parameter Pollution . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
141
HTTP Response Splitting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
141
Memory Corruption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
141
Open Redirect
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
141
Penetration Testing
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
142
Researchers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
142
Response Team . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
142
Responsible Disclosure
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
142
Vulnerability
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
142
Vulnerability Coordination
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
142
Vulnerability Disclosure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
143
White Hat Hacker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
143