Hacking APIs: Breaking Web Application Programming Interfaces
Hacking APIs is a crash course in web API security testing that will prepare you to penetration-test APIs, reap high rewards on bug bounty programs, and make your own APIs more secure.

Hacking APIs is a crash course on web API security testing that will prepare you to penetration-test APIs, reap high rewards on bug bounty programs, and make your own APIs more secure.
 
You’ll learn how REST and GraphQL APIs work in the wild and set up a streamlined API testing lab with Burp Suite and Postman. Then you’ll master tools useful for reconnaissance, endpoint analysis, and fuzzing, such as Kiterunner and OWASP Amass. Next, you’ll learn to perform common attacks, like those targeting an API’s authentication mechanisms and the injection vulnerabilities commonly found in web applications. You’ll also learn techniques for bypassing protections against these attacks.
 
In the book’s nine guided labs, which target intentionally vulnerable APIs, you’ll practice:
   Enumerating APIs users and endpoints using fuzzing techniques
   Using Postman to discover an excessive data exposure vulnerability
   Performing a JSON Web Token attack against an API authentication process
   Combining multiple API attack techniques to perform a NoSQL injection
   Attacking a GraphQL API to uncover a broken object level authorization vulnerability
 
By the end of the book, you’ll be prepared to uncover those high-payout API bugs other hackers aren’t finding and improve the security of applications on the web.
1140540174
Hacking APIs: Breaking Web Application Programming Interfaces
Hacking APIs is a crash course in web API security testing that will prepare you to penetration-test APIs, reap high rewards on bug bounty programs, and make your own APIs more secure.

Hacking APIs is a crash course on web API security testing that will prepare you to penetration-test APIs, reap high rewards on bug bounty programs, and make your own APIs more secure.
 
You’ll learn how REST and GraphQL APIs work in the wild and set up a streamlined API testing lab with Burp Suite and Postman. Then you’ll master tools useful for reconnaissance, endpoint analysis, and fuzzing, such as Kiterunner and OWASP Amass. Next, you’ll learn to perform common attacks, like those targeting an API’s authentication mechanisms and the injection vulnerabilities commonly found in web applications. You’ll also learn techniques for bypassing protections against these attacks.
 
In the book’s nine guided labs, which target intentionally vulnerable APIs, you’ll practice:
   Enumerating APIs users and endpoints using fuzzing techniques
   Using Postman to discover an excessive data exposure vulnerability
   Performing a JSON Web Token attack against an API authentication process
   Combining multiple API attack techniques to perform a NoSQL injection
   Attacking a GraphQL API to uncover a broken object level authorization vulnerability
 
By the end of the book, you’ll be prepared to uncover those high-payout API bugs other hackers aren’t finding and improve the security of applications on the web.
35.99 In Stock
Hacking APIs: Breaking Web Application Programming Interfaces

Hacking APIs: Breaking Web Application Programming Interfaces

by Corey J. Ball
Hacking APIs: Breaking Web Application Programming Interfaces

Hacking APIs: Breaking Web Application Programming Interfaces

by Corey J. Ball

eBook

$35.99 

Available on Compatible NOOK devices, the free NOOK App and in My Digital Library.
WANT A NOOK?  Explore Now

Related collections and offers


Overview

Hacking APIs is a crash course in web API security testing that will prepare you to penetration-test APIs, reap high rewards on bug bounty programs, and make your own APIs more secure.

Hacking APIs is a crash course on web API security testing that will prepare you to penetration-test APIs, reap high rewards on bug bounty programs, and make your own APIs more secure.
 
You’ll learn how REST and GraphQL APIs work in the wild and set up a streamlined API testing lab with Burp Suite and Postman. Then you’ll master tools useful for reconnaissance, endpoint analysis, and fuzzing, such as Kiterunner and OWASP Amass. Next, you’ll learn to perform common attacks, like those targeting an API’s authentication mechanisms and the injection vulnerabilities commonly found in web applications. You’ll also learn techniques for bypassing protections against these attacks.
 
In the book’s nine guided labs, which target intentionally vulnerable APIs, you’ll practice:
   Enumerating APIs users and endpoints using fuzzing techniques
   Using Postman to discover an excessive data exposure vulnerability
   Performing a JSON Web Token attack against an API authentication process
   Combining multiple API attack techniques to perform a NoSQL injection
   Attacking a GraphQL API to uncover a broken object level authorization vulnerability
 
By the end of the book, you’ll be prepared to uncover those high-payout API bugs other hackers aren’t finding and improve the security of applications on the web.

Product Details

ISBN-13: 9781718502451
Publisher: No Starch Press
Publication date: 07/05/2022
Sold by: Penguin Random House Publisher Services
Format: eBook
Pages: 368
File size: 12 MB
Note: This product may take a few minutes to download.

About the Author

Corey Ball is a cybersecurity consulting manager at Moss Adams, where he leads its penetration testing services. He has over ten years of experience working in IT and cybersecurity across several industries, including aerospace, agribusiness, energy, financial tech, government services, and healthcare. In addition to a bachelor’s degree in English and philosophy from Sacramento State University, Corey holds the OSCP, CCISO, CEH, CISA, CISM, CRISC, and CGEIT industry certifications.

Table of Contents

Foreword xvii

Acknowledgments xxi

Introduction xxiii

The Allure of Hacking Web APIs xxiv

This Book's Approach xxiv

Hacking the API Restaurant xxv

Part I How Web API Security Works 1

0 Preparing for Your Security Tests 3

Receiving Authorization 4

Threat Modeling an API Test 4

Which API Features You Should Test 6

API Authenticated Testing 6

Web Application Firewalls 7

Mobile Application Testing 7

Auditing API Documentation 8

Rate Limit Testing 8

Restrictions and Exclusions 9

Security Testing Cloud APIs 10

DoS Testing 10

Reporting and Remediation Testing 11

A Note on Bug Bounty Scope 11

Summary 13

1 How Web Applications Work 15

Web App Basics 15

The URL 16

HTTP Requests 17

HTTP Responses 18

HTTP Status Codes 19

HTTP Methods 20

Stateful and Stateless HTTP 22

Web Server Databases 23

SQL 23

NoSQL 24

How APIs Fit into the Picture 25

Summary 26

2 The Anatomy of Web APIs 27

How Web APIs Work

Standard Web API Types 28

RESTful APIs 30

GraphQL 30

REST API Specifications 34

API Data Interchange Formats 38

JSON 39

XML 39

YAML 41

API Authentication 42

Basic Authentication 42

API Keys 43

JSON Web Tokens 44

HMAC 45

OAuth2.0 46

No Authentication 47

APIs in Action: Exploring Twitter's API 48

Summary 48

3 Common API Vulnerabilities 53

Information Disclosure 54

Broken Object Level Authorization 55

Broken User Authentication 56

Excessive Data Exposure 58

Lack of Resources and Rate Limiting 59

Broken Function Level Authorization 59

Mass Assignment 61

Security Misconfigurations 62

Injections 64

Improper Assets Management 65

Business Logic Vulnerabilities 66

Summary 67

Part II Building an API Testing Lab 69

4 Your API Hacking System 71

Kali Linux 72

Analyzing Web Apps with DevTools 72

Capturing and Modifying Requests with Burp Suited 75

Setting Up FoxyProxy 76

Adding the Burp Suite Certificate 76

Navigating Burp Suite 77

Intercepting Traffic 79

Altering Requests with Intruder 81

Crafting API Requests in Postman, an API Browser 84

The Request Builder 86

Environments 89

Collections 90

The Collection Runner 93

Code Snippets 94

The Tests Panel 94

Configuring Postman to Work with Burp Suite 95

Supplemental Tools 96

Performing Reconnaissance with OWASP Amass 97

Discovering API Endpoints with Kiterunner 98

Scanning for Vulnerabilities with Nikto 99

Scanning for Vulnerabilities with OWASP ZAP 100

Fuzzing with Wfuzz 100

Discovering HTTP Parameters with Arjun 102

Summary 103

Lab #1 Enumerating the User Accounts in a REST API 103

5 Setting Up Vulnerable API Targets 109

Creating a Linux Host 110

Installing Docker and Docker Compose 110

Installing Vulnerable Applications 111

The completely ridiculous API (crAPI) 111

OWASP DevSlop's Pixi 112

OWASP Juice Shop 112

Damn Vulnerable GraphQL Application 113

Adding Other Vulnerable Apps 114

Hacking APIs on TryHackMe and HackTheBox 115

Summary 116

Lab #2 Finding Your Vulnerable APIs 116

Part III Attacking APIs 121

6 Discovery 123

Passive Recon 124

The Passive Recon Process 124

Google Hacking 125

Programmable Web's API Search Directory 127

Shodan 129

OWASP Amass 131

Exposed Information on GitHub 133

Active Recon 136

The Active Recon Process 136

Baseline Scanning with Nmap 138

Finding Hidden Paths in Robots.txt 139

Finding Sensitive information with Chrome DevTools 139

Validating APIs with Burp Suite 142

Crawling URIs with OWASP ZAP 143

Brute-Forcing URIs with Gobuster 145

Discovering API Content with Kiterunner 146

Summary 148

Lab #3 Performing Active Recon for a Black Box Test 148

7 Endpoint Analysis 155

Finding Request Information 156

Finding Information in Documentation 156

Importing API Specifications 159

Reverse Engineering APIs 161

Adding API Authentication Requirements to Postman 164

Analyzing Functionality 166

Testing Intended Use 167

Performing Privileged Actions 168

Analyzing API Responses 169

Finding Information Disclosures 169

Finding Security Misconfigurations 170

Verbose Errors 170

Poor Transit Encryption 171

Problematic Configurations 171

Finding Excessive Data Exposures 172

Finding Business Logic Flaws 173

Summary 174

Lab #4 Building a crAPI Collection and Discovering Excessive Data Exposure 174

8 Attacking Authentication 179

Classic Authentication Attacks 180

Password Brute-Force Attacks 180

Password Reset and Multifactor Authentication Brute-Force Attacks 181

Password Spraying 183

Including Base64 Authentication in Brute-Force Attacks 185

Forging Tokens 187

Manual Load Analysis 187

Live Token Capture Analysis 189

Brute-Forcing Predictable Tokens 190

JSON Web Token Abuse 192

Recognizing and Analyzing JWTs 193

The None Attack 195

The Algorithm Switch Attack 195

The JWT Crack Attack 197

Summary 197

Lab #5 Cracking a crAPI JWT Signature 197

9 Fuzzing 201

Effective Fuzzing 202

Choosing Fuzzing Payloads 203

Detecting Anomalies 204

Fuzzing Wide and Deep 207

Fuzzing Wide with Postman 207

Fuzzing Deep with Burp Suite 210

Fuzzing Deep with Wfuzz 212

Fuzzing Wide for Improper Assets Management 214

Testing Request Methods with Wfuzz 216

Fuzzing "Deeper" to Bypass Input Sanitization 217

Fuzzing for Directory Traversal 218

Summary 218

Lab #6 Fuzzing for Improper Assets Management Vulnerabilities 219

10 Exploiting Authorization 223

Finding BOLAs 223

Locating Resource IDs 224

A-B Testing for BOLA 225

Side-Channel BOLA 226

Finding BFLAs 227

A-B-A Testing for BFLA 227

Testing for BFLA in Postman 228

Authorization Hacking Tips 230

Postman's Collection Variables 230

Burp Suite Match and Replace 231

Summary 231

Lab #7 Finding Another User's Vehicle Location 232

11 Mass Assignment 237

Finding Mass Assignment Targets 238

Account Registration 238

Unauthorized Access to Organizations 238

Finding Mass Assignment Variables 239

Finding Variables in Documentation 239

Fuzzing Unknown Variables 240

Blind Mass Assignment Attacks 241

Automating Mass Assignment Attacks with Arjun and Burp Suite Intruder 241

Combining BFLA and Mass Assignment 242

Summary 243

Lab #8 Changing the Price of Items in an Online Store 243

12 Injection 249

Discovering Injection Vulnerabilities 250

Cross-Site Scripting (XSS) 251

Cross-API Scripting (XAS) 252

SQL Injection 253

Manually Submitting Metacharacters 255

SQLmap 256

NoSQL Injection 257

Operating System Command Injection 259

Summary 261

Lab #9 Faking Coupons Using NoSQL Injection 261

Part IV Real-World API Hacking 265

13 Applying Evasive Techniques and Rate Limit Testing 267

Evading API Security Controls 267

How Security Controls Work 268

API Security Control Detection 269

Using Burner Accounts 270

Evasive Techniques 270

Automating Evasion with Burp Suite 273

Automating Evasion with Wfuzz 274

Testing Rate Limits 276

A Note on Lax Rate Limits 276

Path Bypass 278

Origin Header Spoofing 279

Rotating IP Addresses in Burp Suite 280

Summary 284

14 Attacking GraphQL 285

GraphQL Requests and IDEs 286

Active Reconnaissance 287

Scanning 287

Viewing DVGA in a Browser 288

Using DevTools 289

Reverse Engineering the GraphQL API 290

Directory Brute-Forcing for the GraphQL Endpoint 290

Cookie Tampering to Enable the GraphiQL IDE 292

Reverse Engineering the GraphQL Requests 294

Reverse Engineering a GraphQL Collection Using Introspection 296

GraphQL API Analysis 297

Crafting Requests Using the GraphiQL Documentation Explorer 297

Using the InQL Burp Extension 298

Fuzzing for Command Injection 301

Summary 305

15 Data Breaches and Bug Bounties 307

The Breaches 308

Peloton 308

USPS Informed Visibility API 309

T-Mobile API Breach 311

The Bounties 312

The Price of Good API Keys 312

Private API Authorization Issues 313

Starbucks: The Breach That Never Was 315

An Instagram GraphQL BOLA 317

Summary 318

Conclusion 319

A API Hacking Checklist 321

B Additional Resources 323

Index 327

From the B&N Reads Blog

Customer Reviews