Bug Bounty Cheatsheet
Bug Bounty Cheatsheet
Google dorks
site:<Third Party Vendor> <Company Name>
site:pastebin.com “Company Name”
site:*.atlassian.net “Company Name”
site:bitbucket.org “Company Name”
Inurl:gitlab “Company Name”
https://pentest-tools.com/information-gathering/google-hacking#
Shodan dorks
net:<”CIDR,CIDR,CIDR”>
org:<”Organization Name”>
ssl:<”ORGANIZATION NAME”>
Censys - https://censys.io/ipv4
waf - https://github.com/EnableSecurity/wafw00f
Wafw00f <URL HERE>
wafbypass - https://github.com/0xInfection/Awesome-WAF#known-bypasses
subdomaintakeover - https://github.com/haccer/subjack
https://github.com/EdOverflow/can-i-take-over-xyz
Aws s3
s3bucket dorks - site:.s3.amazonaws.com "Starbucks"
https://github.com/ghostlulzhacks/s3brute
python amazon-s3-enum.py -w BucketNames.txt -d <Domain Here>
Unauthenticated Elasticsearch DB
port "9200" elastic [;shodan query]
Kubernetes API
unauthenticated REST API on port 10250
product:"kubernetes"
Exploitation CMS
Wordpress - https://github.com/wpscanteam/wpscan
Joomla - https://github.com/rezasp/joomscan
Drupal - https://github.com/droope/droopescan
adobe aem - https://github.com/0ang3el/aem-hacker
Magento - https://github.com/steverobbins/magescan
URLSCAN
https://urlscan.io/
https://rapiddns.io
https://sitereview.bluecoat.com/#/
Security Tools
https://tools.tldr.run/
The Bug Hunter's Methodology v4.0 - Recon Edition by
TBHMv4 notes @jhaddix #NahamCon2020!
Finding Subdomains
1 Linked & Js discovery Burpsuite Pro
With burpsuite pro
1) turn off passive
2) set forms auto submit
3) set scope, keywords
4) browse main site
5) spider all hosts
6) target ->scope -> advance scope control -> add host or
iprange
7) show only scope items
8) select all hosts -> engagement tools -> analyze target -> save
report as html file
3 Subdomain bruteforcing
guessing for live subdomains with larget list of common
sudomains name
tool: Massdns
amass enum -brute -d twitch.tv -src
amass enum -brute -d twitch.tv -rf resolvers.txt -w bruteforce.
Sudomain Bruteforce with Amass list
shuffledns -d hackerone.com -w words.txt -r resolvers-excellent.
Sudomain Bruteforce with shuffleDNS txt
Subdomain Bruting lists -> tomnomnom - githubrepo -> all.txt
Asset note -> commonspeak2
altdns
dev1.company.com
dev2.company.com
dev-1.company.com
Alteration scanning
tool: github-search
github dork collections -> jhaddix github repo
fullmode on github and sensitive data exposure by
5 Github dorking @th3g3ntelmans video in bugcrowd
GET /view?pg=../../../../../etc/passwd%00
static files
GET /patientIMAGES/3216647.jpg
GET /patientDocuments/21714.pdf
Burpextension used: authmatrix, authz, autorize &
Direction function calling
POST /admin/viewTransactions.ashx? autorepeater
admin=true&from=08032017&to=08032018
"Manual Checking
"1)Used toDisplay Dynamic Content on web page
curl -g 'http://www.target.com/page?name=John'
Hint: input reflect back then try to insert payload
curl -g 'http://www.target.com/page?name={{7*7}}'
2)Web Template enginewhich used this
Automation tool for SSTI exploitation:
FreeMarker - Java-based template engine
https://github.com/epinna/tplmap
Velocity - Java-based template engine
38 Client and server Side Template injection Basic Payload:
Smarty - PHP Template engine
{{7*7}}
Twig - PHP Template engine
{{7*'7'}}
Jade - Node.js Template engine
{% extends""/etc/passwd"" %}
Jinja2 - Python/Flask Template engine"
RCE PAYLOAD - TWIG: {{_self.env.registerUndefinedFilterCallback(""exec"")}}{{_self.env.getFilter(""id"")}}"
Applicable
Test Name Description Tool Platform OWASP Result
apktool,
dex2jar,
Reverse Engineering the Application Code Clutch,
(Code Obfuscating Checking) Disassembling and Decompiling the application Classdump All M9 Issue
Information leakage/Hardcoded credential Identify sensitive information through binary/source string, jdgui,
in the binaries code IDA, Hopper All M9 Issue
Static code modification, Binary patching, Bypass apktool,
Unauthorized Code Modification check sum mechanism Hopper All M8 Issue
apktool,
Misuse of App permissions Identify excessive App permissions MobSF Android M1 Issue
Identify "minSdkVersion" on apktool.yml, the value be
Insecure version of OS Installation Allowed set over than 17. For iOS, identify minOS using idb. apktool, idb All M1 Issue
MobSF
Applicable
Test Name Description Tool Platform OWASP Result
Identify misuse of Data protection API on Keychain,
Misuse of Keychain , Touch ID and other Misuse of TouchID (Retrieve credentials from Local
security related controls Storage, Local Authen) iDevice iOS M1 Issue
Minimum Device Security Requirements Ensure that app cannot execute when the PIN or
absent Pattern lock is not enabled. Device All M1 Issue
adb, idb,
Unencrypted Database files Check encryption on database files iFunbox All M2 Issue
Identify Sensitive Data on Shared Storage, SD card
storage encryption, Shared preferences
Insecure Shared Storage MODE_WORLD_READABLE adb Android M2 Issue
adb, idb,
iFunbox,
Identify Sensitive Data in application files (application BinaryCookie
Insecure Application Data Storage log, Cache file, Cookie) Reader All M2 Issue
adb logcat,
idb,
Information Disclosure through libimobiledevic
Logcat/Apple System Log (ASL) Identify sensitive information through application log e All M2 Issue
Identify application snapshot/screenshot Device,
Application Backgrounding (Screenshot) backgrounding iFunbox All M2 Issue
Identify disabling Copy/Paste function for sensitive
Copy/Paste Buffer Caching part of the application on EditText/UITextField idb, iFunbox All M2 Issue
Identify keyboard cache file located in:
/var/mobile/Library/Keyboard
/data/data/com.android.providers. Device, idb,
Keyboard Press Caching userdictionary/databases/user_dict.db iFunbox All M2 Issue
For Android, Check "android:allowBackup" attribute apktool,
which should be set to "false" iPhone
For iOS, Use iTune to backup application folder in Backup
Unrestricted Backup file order to check sensitive info from backup folder Extractor All M2 Issue
Remember Credentials Functionality adb, idb,
(Persistent authentication) Identify user's password or sessions on the device iFunbox All M4 Issue
adb, Drozer,
Cycript,
Perform binary attacks against the mobile app in Snoop-it,
Client Side Based Authentication Flaws order to bypass offline authentication Burpsuite All M4 Issue
adb, Drozer,
Perform binary attacks against the mobile app and try Cycript,
to execute privileged functionality that should only be Snoop-it,
Client Side Authorization Breaches executable with a user of higher privilege Burpsuite All M6 Issue
Content Providers: SQL Injection and
Local File Inclusion Identify SQLi and LFI on Content provider component Drozer Android M7 Issue
Identify intent-filter on broadcast and receiver
component in order to directly access and sniff the
Broadcast Receiver information Drozer Android M7 Issue
Service component Invoke Service component directly Drozer Android M7 Issue
Identify misconfiguration on "android.webkit.
WebSettings"
(Javascript/File access/Plugins), XSS through
Insufficient WebView hardening UIWebview jdgui, iDevice All M7 Issue
adb, iDevice,
Injection (SQLite Injection, XML Injection) Identify SQLi and XMLi on application Burpsuite All M7 Issue
Check LFI on application(../ , ../../blah\0) Webviews
Local File Inclusion through Webviews FileAccess attack through setAllowFileAccess jdgui, iDevice All M7 Issue
For iOS: Identify URL schemes through info.plist and
Clutch+Strings to obtain URL scheme structures
For Android: Identify URL schemes through source apktool, jdgui,
Abusing URL schemes or Deeplinks code or manifest file Clutch, Strings All M7 Issue
Identify sensitive information masking (Creditcard no. Device,
Sensitive Information Masking on UI and HTTPs traffic) Burpsuite All M7 Issue
Frida, Cycript,
Runtime Manipulation Run-time manipulation, Method swizzling Snoop-it All M8 Issue
Detect root/jb detection code in the reverse
engineered app file.If found, delete/ change the
access control of the file containing the code and
restart the app. Or Install tools like hidemyroot and tsProtector,
Rooted or Jail-broken device checking run the apps RootCloak2 All M8 Issue
Identify sensitive information (Credential) between jdgui,
Dynamic and Passwords/ Connection String disclosure mobile and API Burpsuite All M10 Issue
Runtime Identify extraneous functionality (Hidden back-end jdgui,
analysis Hidden and Unscrutinised functionalities URL) Burpsuite All M10 Issue
Applicable
Test Name Description Tool Platform OWASP Result
Observe the device's network traffic through a proxy
Insecure Transport Layer Protocols that SSL is implemented or not Burpsuite All M3 Issue
testssl.sh,
Use of Insecure and Deprecated Qualys SSL
algorithms Identify SSL/TLS Encryption Algorithms Labs All M3 Issue
Allow tester to intercept SSL traffic without Certificate jdgui, MobSF,
Use of Disabling certificate validation installation (checkServerTrusted with nobody) Qark All M3 Issue
Check whether application accepts a certificate from
any trusted CA (Burpsuite) or not. E.g. Check
setAllowsAnyHTTPSCertificate(iOS) and jdgui, MobSF,
Communicati SSL pinning Implementation AllowAllHostnameVerifier(Android) Qark All M3 Issue
on Channel End-to-end encryption Identify end-to-end encryption on application layer Burpsuite All M3 Issue
Applicable
Test Name Description Tool Platform OWASP Result
Excessive port opened at Firewall Identify opened port at Server-side URL/IP Address Nmap All M1 Issue
Identify default credentials on Backend server (e.g.
Tomcat Application server using tomcat/tomcat,
Default credentials on Application Server admin/tomcat) Web Browser All M1 Issue
Identify weak password policy implementation both
mobile and server side (e.g. Bypass password
Weak password policy Implementation complexity checking on UI) Burpsuite All M1 Issue
Exposure of Webservices through WSDL Identify webservices help pages (*.asmx) which show
document methods and structure Web Browser All M1 Issue
Identify webserver configuration (e.g. Error handling, Web Browser,
Security Misconfiguration on Server API HTTP response banner) Burpsuite All M1 Issue
Security Patching on Server API Identify vulnerability on server API Nessus All M1 Issue
Check input validation (e.g. SQL Injection, XXE) on
Input validation on API API/Webservices Burpsuite All M1 Issue
Information Exposure through API Identify sensitive information on API response
response message message/header Burpsuite All M1 Issue
Control of interaction frequency on API Conduct simultaneous attack on API (e.g. OTP, email Burpsuite
(Replay Attack) sending) (Intruder) All M1 Issue
Ensure that all session invalidation events are
executed on the server side and not just on the
Session invalidation on Backend mobile app Burpsuite All M4 Issue
Mobile app must have adequate timeout protection
Session Timeout Protection on the backend components Burpsuite All M4 Issue
Ensure that reset cookies is properly implemented
during authentication state changes
Cookie Rotation (Anonymous<->User, User A<->User B, Timeout) Burpsuite All M4 Issue
Simultaneously login from multiple device with the
Multiple concurrent logins same credential Burpsuite All M4 Issue
Observe the device's network traffic through a proxy
Exposing Device Specific Identifiers in that Device's information (UDID) is sent during the
Attacker Visible Elements transmission or not. Burpsuite All M4 Issue
They should be standard algorithm, sufficiently long,
complex, and pseudo-random so as to be resistant to
Token/Session Creation and handling guessing/anticipation attacks. Burpsuite All M5 Issue
Directly access unauthorised object/var through
Insecure Direct Object references HTTPs traffic Burpsuite All M6 Issue
Directly access unauthorised function through HTTPs
Server Side - Missing function level access control traffic Burpsuite All M6 Issue
Webservices Bypass business logic data validation, Circumvention
and API Bypassing business logic flaws of Work Flows Burpsuite All M6 Issue
S NO OWASP Top 10 API Approach Hackerone reports for reference
- User Id 718492 rating his ride, Intercept the request, Change the id to 718493
in the database it will update like user 718493 is rating his ride
- Based on Userid & Object id
Profile controller - User #585 has access to update profile #616
POST /update_profile
{"user_id":616, "email":"[email protected]"}
Admin Panel Controller - Admin #616 has access to delete user #888
A1 - BOLA (Broken Object Level DELETE /admin/delete_user?user_id=888 Uber full account takover by Anand prakash
1 Authorization) (appsecure)
1) Legitimate request:
Post /api/users/new https://hackerone.com/reports/9942
{"username":"Inon", "pass":"123456"} Users can enable API Access for free via mass
Assignment
2) Malicious Found by Jameskettle (portswigger) in new
Post /api/users/new relic program
{"username":"Inon", "pass":"123456", "role"="admin"}
POST /accounts/<account_id>.json
Easier to exploit in APis
Always try with GET, POST, PUT & PATCH account [firstname]="evil" &
6 A6 -Mass Assignment User Mass assignment to bypass other Security Controls account[allow_api_access]=true
Hardcoded Passwords
lack of csrf/cors protection
lack of security http headers
unnecessary exposed http methods
weak encryption
7 A7 - Security Misconfiguration etc https://hackerone.com/reports/426165
Non-legitimate
/v0/b2b_old/export_all_users
Use a random complicated key (JWT Secret) to make brute forcing the token very hard.
FALSE
Don't extract the algorithm from the header. Force the algorithm in the backend (HS256 or RS256).
FALSE
FALSE Make token expiration (TTL, RTTL) as short as possible.
Don't store sensitive data in the JWT payload, it can be decoded easily.
FALSE
OAuth
Always validate redirect_uri server-side to allow only whitelisted URLs.
FALSE
Always try to exchange for code and not tokens (don't allow response_type=token).
FALSE
Use state parameter with a random hash to prevent CSRF on the OAuth authentication process.
FALSE
Define the default scope, and validate scope parameters for each application.
FALSE
Access
FALSE Limit requests (Throttling) to avoid DDoS / brute-force attacks.
FALSE Use HTTPS on server side to avoid MITM (Man in the Middle Attack).
FALSE Use HSTS header with SSL to avoid SSL Strip attack.
Input
Use the proper HTTP method according to the operation: GET (read), POST (create), PUT/PATCH
(replace/update), and DELETE (to delete a record), and respond with 405 Method Not Allowed if the
FALSE requested method isn't appropriate for the requested resource.
Validate content-type on request Accept header (Content Negotiation) to allow only your supported
format (e.g. application/xml, application/json, etc.) and respond with 406 Not Acceptable response if not
FALSE matched.
Validate content-type of posted data as you accept (e.g. application/x-www-form-urlencoded,
FALSE multipart/form-data, application/json, etc.).
Validate user input to avoid common vulnerabilities (e.g. XSS, SQL-Injection, Remote Code Execution,
FALSE etc.).
Don't use any sensitive data (credentials, Passwords, security tokens, or API keys) in the URL, but use
FALSE standard Authorization header.
Use an API Gateway service to enable caching, Rate Limit policies (e.g. Quota, Spike Arrest, or Concurrent
FALSE Rate Limit) and deploy APIs resources dynamically.
Processing
FALSE Check if all the endpoints are protected behind authentication to avoid broken authentication process.
FALSE User own resource ID should be avoided. Use /me/orders instead of /user/654321/orders.
FALSE Don't auto-increment IDs. Use UUID instead.
If you are parsing XML files, make sure entity parsing is not enabled to avoid XXE (XML external entity
FALSE attack).
If you are parsing XML files, make sure entity expansion is not enabled to avoid Billion Laughs/XML bomb
FALSE via exponential entity expansion attack.
FALSE Use a CDN for file uploads.
If you are dealing with huge amount of data, use Workers and Queues to process as much as possible in
background and return response fast to avoid HTTP Blocking.
FALSE
Do not forget to turn the DEBUG mode OFF.
FALSE
Output
FALSE Send X-Content-Type-Options: nosniff header.
Send X-Frame-Options: deny header.
FALSE
FALSE Send Content-Security-Policy: default-src 'none' header.
FALSE Remove fingerprinting headers - X-Powered-By, Server, X-AspNet-Version, etc.
Force content-type for your response. If you return application/json, then your content-type response is
FALSE application/json.
FALSE Don't return sensitive data like credentials, Passwords, or security tokens.
Return the proper status code according to the operation completed. (e.g. 200 OK, 400 Bad Request, 401
FALSE Unauthorized, 405 Method Not Allowed, etc.).
CI & CD
FALSE Audit your design and implementation with unit/integration tests coverage.
FALSE Use a code review process and disregard self-approval.
Ensure that all components of your services are statically scanned by AV software before pushing to
FALSE production, including vendor libraries and other dependencies.
Design a rollback solution for deployments.
FALSE
https://github.com/shieldfy/API-Security-Checklist
[API Pentest Guide]
API hacking by Katie Paxton-Fear
https://youtu.be/qqmyAxfGV9c
https://www.youtube.com/watch?v=cWSu2Ja65Z4
https://www.youtube.com/watch?v=yCUQBc2rY9Y&list=PLbyncTkpno5HqX1h2MnV6Qt4wvTb8Mpol
HACKTIVITY
https://www.youtube.com/watch?v=zW8QF3x3oSU
https://www.youtube.com/watch?v=HXci0-NSwOs
API 101 - https://www.youtube.com/watch?v=ijalD2NkRFg
BADAPI - https://www.youtube.com/watch?v=UT7-ZVawdzA
https://www.youtube.com/watch?v=UD6n666nS8I
https://virgool.io/class313/%D9%85%D9%82%D8%AF%D9%85%D9%87-%D8%A7%DB%8C-%D8%A8%D8%B1-%D8%AA%
D8%B3%D8%AA-%D9%86%D9%81%D9%88%D8%B0-%D9%88%D8%A8%D8%B3%D8%B1%D9%88%DB%8C%D8%B3-
os12uh6bbyy4
https://www.youtube.com/watch?v=AIBC0WRf38A
https://virgool.io/class313/%D8%A2%D8%B3%DB%8C%D8%A8-%D9%BE%D8%B0%DB%8C%D8%B1%DB%8C-%D9%87%
D8%A7%DB%8C-xxexpath-injectionapi-sql-injection-nfudsdnvjlv4
https://www.youtube.com/watch?v=vKm_WHxczow&feature=youtu.be
https://virgool.io/class313/%D8%A2%D8%B3%DB%8C%D8%A8-%D9%BE%D8%B0%DB%8C%D8%B1%DB%8C-%D9%87%
D8%A7%DB%8C-xml-bombcommand-injection-xst-ssrf-%D8%AF%D8%B1-%D9%88%D8%A8%D8%B3%D8%B1%D9%88%
DB%8C%D8%B3-%D9%87%D8%A7-htnh2lninb8c