Web Enumeration

Recon, fuzzing and crawling

ko-fi

Recon

nmap -p 80,443,8000,8080,8180,8888,1000 --open -oA web_discovery -iL scope_list

Leverage Shodan and find CVE

EyeWitness or Aquatone - See Information Gathering

Fingerprinting / Crawling

SSL / TLS

HTTP/2 - DoS

Basic vulnerability scanning to see if web servers may be vulnerable to CVE-2023-44487

HTTP Downgrading

HTTP downgrading is the process of forcing a request to be processed under HTTP/1.1 instead of HTTP/2.

  1. Open Burp Suite and Navigate to Proxy → HTTP History

  2. Locate the request that is currently using HTTP/2.

  3. Send the Request to Repeater

  4. In the Repeater tab, open the "Inspector" panel → Request Attributes → Protocol

  5. Change HTTP Version to HTTP/1.1

  6. Click "Send" in Repeater.

If successful, you should receive a valid response, confirming the server accepts HTTP/1.1.

Now, test for request smuggling

HTTP Request Smuggling

HTTP Methods

HTTP Verb Tampering

Apache Vulnerability Testing

  • CVE-2021-41773 (RCE and LFI)

  • CVE-2021-42013 (RCE and LFI)

Scan for credz

Header Exploit

Common files

robots.txt

-> robofinder: search for and retrieve historical robots.txt files from Archive.org for any given website.

.git

.svn

.DS_Store

.env

Cloudflare

Real IP adress

Tool developed to discover the real IP addresses of web applications protected by Cloudflare. It performs multi-source intelligence gathering through various methods.

Internal IP leakage

/cdn-cgi/trace on live hosts — it leaks internal IPs

sitemap.xml

Time based SQL injection: sleep payload [1;SELECT IF((8303>8302),SLEEP(9),2356)#] = 9s

SQL Injection

Git Exposed

DotGit Extension - Firefox and Chrome https://addons.mozilla.org/en-US/firefox/addon/dotgit/

Nuclei Template: https://github.com/coffinxp/priv8-Nuclei/blob/main/git-exposed.yaml

.git found => download the target .git folder

Or with tools:

The best tool is goop

After that, search for creds, vulnerabilities, etc:

Credentials in git reposGitHub - finding vulnerabilities

SVN Expoxed

PHPMyAdmin

target[.]com/phpmyadmin/setup/index.php ==> 301 to login page

target[.]com/phpMyAdmin/setup/index.php ==> 200 to phpmyadmin setup

AdminDirectoryFinder

WSAAR

OWASP Noir

URLScan.io

Check URLScan as a complement to Wayback Machine

Information Gathering

Postman

Domain name -> Workspace type Public

WaybackLister

Reconnaissance tool that taps into the Wayback Machine to fetch historical URLs for a domain, parses unique paths, and checks if any of those paths currently expose directory listings

Wayback Machine

Information Gathering

Download pages and extract JS (mode R)

JWTxplorer

Scan public archives like the Wayback Machine, extracts leaked JWT tokens, and decodes them to identify potentially exploitable information.

Backup Files

Fuzzili

Burp Extension

Archived Backups

Look for metadata

Extract URLs and paths from web pages

Manually

Open Console (ctrl + shift + i) + Allow pasting ("autoriser le collage") + copy paste JS code + click on bookmark

Source: NahamCon2024: .js Files Are Your Friends | @zseano https://www.youtube.com/watch?v=fQoxjBwQZUA

Extensions to run Javascript - No need to use the console

Code to get URLs and unhide elements - Credits: @coffinxp

Carridi

Gourlex

xnLinkFinder

Command breakdown:

Hakrawler

Waybackurls

Katana & Urlfinder

GetAllURL - gau

LinkFinder

GoLinkFinder

Faster than LinkFinder

LazyEgg

ReconSpider

See Fingerprinting / Crawling

BadSecrets - Cookies

Name
Description

ASPNET_Viewstate

Checks the viewstate/generator against a list of known machine keys.

Telerik_HashKey

Checks patched (2017+) versions of Telerik UI for a known Telerik.Upload.ConfigurationHashKey

Telerik_EncryptionKey

Checks patched (2017+) versions of Telerik UI for a known Telerik.Web.UI.DialogParametersEncryptionKey

Flask_SignedCookies

Checks for weak Flask cookie signing password. Wrapper for flask-unsign

Peoplesoft_PSToken

Can check a peoplesoft PS_TOKEN for a bad/weak signing password

Django_SignedCookies

Checks django's session cookies (when in signed_cookie mode) for known django secret_key

Rails_SecretKeyBase

Checks Ruby on Rails signed or encrypted session cookies (from multiple major releases) for known secret_key_base

Generic_JWT

Checks JWTs for known HMAC secrets or RSA private keys

Jsf_viewstate

Checks Both Mojarra and Myfaces implimentations of Java Server Faces (JSF) for use of known or weak secret keys

Symfony_SignedURL

Checks symfony "_fragment" urls for known HMAC key. Operates on Full URL, including hash

Express_SignedCookies_ES

Checks express.js express-session middleware for signed cookies and session cookies for known 'session secret'

Express_SignedCookies_CS

Checks express.js cookie-session middleware for signed cookies and session cookies for known secret

Laravel_SignedCookies

Checks 'laravel_session' cookies for known laravel 'APP_KEY'

ASPNET_Vstate

Checks for a once popular custom compressed Viewstate code snippet vulnerable to RCE

Rack2_SignedCookies

Checks Rack 2.x signed cookies for known secret keys

Yii2_SignedCookies

Checks Yii2 framework signed cookies for known cookie validation keys

Secrets in Response

Detects sensitive information leaks in HTTP responses using custom regex-based signatures

Metadata

Metadata and Hidden infos

JS Files

Sensitive JS Files

Burp

Source: NahamCon2024: .js Files Are Your Friends | @zseano https://www.youtube.com/watch?v=fQoxjBwQZUA

Detect secrets

Burp Extension

Code Analysis

Code Analysis

JSFScan.sh

Morgan

Identify sensitive information, vulnerabilities, and potential risks within JavaScript files on websites

Gouge - Burp extension to extract URLs which are seen in JS files

GetJS

JSHunter

Endpoint Extraction and Sensitive Data Detection

Javascript Deobfuscator

Online

API Endpoint - Burp History

API Endpoint in JS File

JSNinja

Jsluice

API

Sensitive data in JS Files

Top 25 JavaScript path files used to store sensitive information

Sensitive Data (API Key, JWT token, etc.) Exposed

JS Miner - Burp Extension

X-Keys - Burp Extension

jsluice++ - Burp Extension

SecretFinder

Mantra

Testing API Key

Google Maps API Key

Algolia API Key

Tool

Manual Testing

Check ACL:

The most damaging permissions are

  • addObject: Allows adding/updating an object in the index. (Copying/moving indices are also allowed with this permission.)

  • deleteObject: Allows deleting an existing object.

  • deleteIndex: Allows deleting an index (will break search completely)

  • editSettings: Allows changing index settings. - this also allows you to run javascript when the search is used.

  • listIndexes: Allows listing all accessible indices.

  • logs: this will allow you to view the search logs, which can include IP Addresses and sensitive cookies.

Abuse editSettings to put an XSS paylaod:

List indexes

Retrieve/read the data of a resource from the server:

  • settings

  • Specific index

Update a resource on the server.

Delete Index - DON'T DO THIS ON PRODUCTION ENVIRONMENT

Hidden Parameter

This useful option in Burp Suite makes every hidden input field (often with a reference to a hidden parameter) visible

Proxy Settings >>> Response modification rules >>> Unhide hidden form fields

Parameters fuzzing

Burp - Param Miner

right-click, extension>Param Miner> Guess params> Guess GET parameters.

Burp - GAP

GetAllParams

x8

Hidden parameters discovery

Arjun

If you’ve been proxying traffic with Burp Suite, you can select all URLs within the sitemap, use the Copy Selected URLs option, and paste that list to a text file. Then run Arjun against all Burp Suite targets simultaneously, like this:

Parmahunter

Wordlists

Fuzzing

Fuzz using different HTTP methods

Admin interfaces

Backups

Config files

SQL files

Vulnerability Assessment

Vulnerability ScannersPort Scan

Lostfuzzer

Admin interface

Password lists

CMS

CMS

Crawling

Crawl with 2 separate user-agent

Always crawl with 2 separate user-agent headers, one for desktop and one for mobile devices and look for response changes!

Gospider

Hakrawler

With Burp

With Zap

  • Spidering

  • Fuzzing

Fuzz

Wordlists

Fuzzing

Admin interface=> Password guessing

Tool: https://github.com/FortyNorthSecurity/EyeWitness ; or Aquatone

Information Gathering

DNS Subdomain Enumeration

DNS Subdomain Enumeration

Cloudflare Bypass for Web Scraping

Interesting Books

Interesting Books

Disclaimer: As an Amazon Associate, I earn from qualifying purchases. This helps support this GitBook project at no extra cost to you.

Support this Gitbook

I hope it helps you as much as it has helped me. If you can support me in any way, I would deeply appreciate it.

ko-fi

buymeacoffee

Last updated