.. | ||
buckets | ||
drupal | ||
electron-desktop-apps | ||
php-tricks-esp | ||
tomcat | ||
403-and-401-bypasses.md | ||
aem-adobe-experience-cloud.md | ||
angular.md | ||
apache.md | ||
artifactory-hacking-guide.md | ||
bolt-cms.md | ||
cgi.md | ||
code-review-tools.md | ||
dotnetnuke-dnn.md | ||
drupal.md | ||
flask.md | ||
git.md | ||
golang.md | ||
grafana.md | ||
graphql.md | ||
gwt-google-web-toolkit.md | ||
h2-java-sql-database.md | ||
iis-internet-information-services.md | ||
imagemagick-security.md | ||
jboss.md | ||
jira.md | ||
joomla.md | ||
jsp.md | ||
laravel.md | ||
moodle.md | ||
nextjs.md | ||
nginx.md | ||
nodejs-express.md | ||
put-method-webdav.md | ||
python.md | ||
README.md | ||
rocket-chat.md | ||
special-http-headers.md | ||
spring-actuators.md | ||
symphony.md | ||
tomcat.md | ||
uncovering-cloudflare.md | ||
vmware-esx-vcenter....md | ||
waf-bypass.md | ||
web-api-pentesting.md | ||
werkzeug.md | ||
wordpress.md |
80,443 - Pentesting Web Methodology
{% hint style="success" %}
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Überprüfe die Abonnementpläne!
- Tritt der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folge uns auf Twitter 🐦 @hacktricks_live.
- Teile Hacking-Tricks, indem du PRs zu den HackTricks und HackTricks Cloud GitHub-Repos einreichst.
Wenn du an einer Hacking-Karriere interessiert bist und das Unhackbare hacken möchtest - wir stellen ein! (fließend Polnisch in Wort und Schrift erforderlich).
{% embed url="https://www.stmcyber.com/careers" %}
Grundinformationen
Der Webdienst ist der häufigste und umfangreichste Dienst und es gibt viele verschiedene Arten von Schwachstellen.
Standardport: 80 (HTTP), 443(HTTPS)
PORT STATE SERVICE
80/tcp open http
443/tcp open ssl/https
nc -v domain.com 80 # GET / HTTP/1.0
openssl s_client -connect domain.com:443 # GET / HTTP/1.0
Web API Guidance
{% content-ref url="web-api-pentesting.md" %} web-api-pentesting.md {% endcontent-ref %}
Methodologie Zusammenfassung
In dieser Methodologie gehen wir davon aus, dass Sie eine Domain (oder Subdomain) angreifen werden und nur das. Daher sollten Sie diese Methodologie auf jede entdeckte Domain, Subdomain oder IP mit unbestimmtem Webserver im Geltungsbereich anwenden.
- Beginnen Sie mit der Identifizierung der Technologien, die vom Webserver verwendet werden. Achten Sie auf Tricks, die Sie während des restlichen Tests im Hinterkopf behalten sollten, wenn Sie die Technik erfolgreich identifizieren können.
- Gibt es bekannte Schwachstellen der Version der Technologie?
- Verwenden Sie eine bekannte Technik? Gibt es einen nützlichen Trick, um mehr Informationen zu extrahieren?
- Gibt es einen spezialisierten Scanner, den Sie ausführen sollten (wie wpscan)?
- Starten Sie Allzweck-Scanner. Sie wissen nie, ob sie etwas finden oder ob sie interessante Informationen finden.
- Beginnen Sie mit den ersten Überprüfungen: robots, sitemap, 404-Fehler und SSL/TLS-Scan (wenn HTTPS).
- Beginnen Sie mit dem Spidering der Webseite: Es ist Zeit, alle möglichen Dateien, Ordner und Parameter zu finden, die verwendet werden. Überprüfen Sie auch auf besondere Funde.
- Beachten Sie, dass jedes Mal, wenn ein neues Verzeichnis während des Brute-Forcings oder Spiderings entdeckt wird, es gespidert werden sollte.
- Verzeichnis-Brute-Forcing: Versuchen Sie, alle entdeckten Ordner zu brute-forcen, um nach neuen Dateien und Verzeichnissen zu suchen.
- Beachten Sie, dass jedes Mal, wenn ein neues Verzeichnis während des Brute-Forcings oder Spiderings entdeckt wird, es brute-forced werden sollte.
- Backup-Überprüfung: Testen Sie, ob Sie Backups von entdeckten Dateien finden können, indem Sie gängige Backup-Erweiterungen anhängen.
- Brute-Force-Parameter: Versuchen Sie, versteckte Parameter zu finden.
- Sobald Sie alle möglichen Endpunkte, die Benutzereingaben akzeptieren, identifiziert haben, überprüfen Sie alle Arten von Schwachstellen, die damit verbunden sind.
- Befolgen Sie diese Checkliste
Serverversion (anfällig?)
Identifizieren
Überprüfen Sie, ob es bekannte Schwachstellen für die Version des Servers gibt, die ausgeführt wird.
Die HTTP-Header und Cookies der Antwort könnten sehr nützlich sein, um die Technologien und/oder Version zu identifizieren, die verwendet werden. Ein Nmap-Scan kann die Serverversion identifizieren, aber auch die Tools whatweb, webtech oder https://builtwith.com/:
whatweb -a 1 <URL> #Stealthy
whatweb -a 3 <URL> #Aggresive
webtech -u <URL>
webanalyze -host https://google.com -crawl 2
Search nach Schwachstellen der Webanwendung Version
Überprüfen, ob ein WAF vorhanden ist
- https://github.com/EnableSecurity/wafw00f
- https://github.com/Ekultek/WhatWaf.git
- https://nmap.org/nsedoc/scripts/http-waf-detect.html
Web-Technik-Tricks
Einige Tricks zum Finden von Schwachstellen in verschiedenen bekannten Technologien:
- AEM - Adobe Experience Cloud
- Apache
- Artifactory
- Buckets
- CGI
- Drupal
- Flask
- Git
- Golang
- GraphQL
- H2 - Java SQL-Datenbank
- IIS-Tricks
- JBOSS
- Jenkins
- Jira
- Joomla
- JSP
- Laravel
- Moodle
- Nginx
- PHP (php hat viele interessante Tricks, die ausgenutzt werden könnten)
- Python
- Spring Actuators
- Symphony
- Tomcat
- VMWare
- Web API Pentesting
- WebDav
- Werkzeug
- Wordpress
- Electron Desktop (XSS zu RCE)
Beachten Sie, dass die gleiche Domain verschiedene Technologien in verschiedenen Ports, Ordnern und Subdomains verwenden kann.
Wenn die Webanwendung eine bekannte Technologie/Plattform aus der Liste oben oder eine andere verwendet, vergessen Sie nicht, im Internet nach neuen Tricks zu suchen (und lassen Sie es mich wissen!).
Quellcode-Überprüfung
Wenn der Quellcode der Anwendung in github verfügbar ist, gibt es neben der Durchführung eines White-Box-Tests der Anwendung einige Informationen, die für das aktuelle Black-Box-Testing nützlich sein könnten:
- Gibt es eine Änderungsprotokoll- oder Readme- oder Versionsdatei oder etwas mit Versionsinformationen, das über das Web zugänglich ist?
- Wie und wo werden die Anmeldeinformationen gespeichert? Gibt es eine (zugängliche?) Datei mit Anmeldeinformationen (Benutzernamen oder Passwörtern)?
- Sind Passwörter im Klartext, verschlüsselt oder welcher Hash-Algorithmus wird verwendet?
- Wird ein Master-Schlüssel zur Verschlüsselung von etwas verwendet? Welcher Algorithmus wird verwendet?
- Können Sie auf eine dieser Dateien zugreifen, indem Sie eine Schwachstelle ausnutzen?
- Gibt es interessante Informationen in den github (gelösten und ungelösten) Issues? Oder in der Commit-Historie (vielleicht ein Passwort, das in einem alten Commit eingeführt wurde)?
{% content-ref url="code-review-tools.md" %} code-review-tools.md {% endcontent-ref %}
Automatische Scanner
Allgemeine automatische Scanner
nikto -h <URL>
whatweb -a 4 <URL>
wapiti -u <URL>
W3af
zaproxy #You can use an API
nuclei -ut && nuclei -target <URL>
# https://github.com/ignis-sec/puff (client side vulns fuzzer)
node puff.js -w ./wordlist-examples/xss.txt -u "http://www.xssgame.com/f/m4KKGHi2rVUN/?query=FUZZ"
CMS-Scanner
Wenn ein CMS verwendet wird, vergiss nicht, einen Scanner auszuführen, vielleicht wird etwas Interessantes gefunden:
Clusterd: JBoss, ColdFusion, WebLogic, Tomcat, Railo, Axis2, Glassfish
CMSScan: WordPress, Drupal, Joomla, vBulletin-Websites auf Sicherheitsprobleme. (GUI)
VulnX: Joomla, Wordpress, Drupal, PrestaShop, Opencart
CMSMap: (W)ordpress, (J)oomla, (D)rupal oder (M)oodle
droopscan: Drupal, Joomla, Moodle, Silverstripe, Wordpress
cmsmap [-f W] -F -d <URL>
wpscan --force update -e --url <URL>
joomscan --ec -u <URL>
joomlavs.rb #https://github.com/rastating/joomlavs
An diesem Punkt sollten Sie bereits einige Informationen über den vom Client verwendeten Webserver (sofern Daten bereitgestellt werden) und einige Tricks, die Sie während des Tests im Hinterkopf behalten sollten, haben. Wenn Sie Glück haben, haben Sie sogar ein CMS gefunden und einen Scanner ausgeführt.
Schritt-für-Schritt-Webanwendungsentdeckung
Ab diesem Punkt werden wir beginnen, mit der Webanwendung zu interagieren.
Erste Überprüfungen
Standardseiten mit interessanten Informationen:
- /robots.txt
- /sitemap.xml
- /crossdomain.xml
- /clientaccesspolicy.xml
- /.well-known/
- Überprüfen Sie auch Kommentare auf den Haupt- und Unterseiten.
Fehler erzwingen
Webserver können unerwartet reagieren, wenn seltsame Daten an sie gesendet werden. Dies kann Schwachstellen oder Offenlegung sensibler Informationen öffnen.
- Greifen Sie auf falsche Seiten wie /whatever_fake.php (.aspx,.html,.etc) zu
- Fügen Sie "[]", "]]" und "[[" in Cookie-Werte und Parameter-Werte ein, um Fehler zu erzeugen
- Generieren Sie einen Fehler, indem Sie als Eingabe
/~randomthing/%s
am Ende der URL angeben - Versuchen Sie verschiedene HTTP-Methoden wie PATCH, DEBUG oder falsche wie FAKE
Überprüfen Sie, ob Sie Dateien hochladen können (PUT-Verb, WebDav)
Wenn Sie feststellen, dass WebDav aktiviert ist, Sie jedoch nicht über ausreichende Berechtigungen zum Hochladen von Dateien im Stammordner verfügen, versuchen Sie:
- Brute Force-Anmeldeinformationen
- Hochladen von Dateien über WebDav in die restlichen gefundenen Ordner innerhalb der Webseite. Möglicherweise haben Sie Berechtigungen zum Hochladen von Dateien in anderen Ordnern.
SSL/TLS-Schwachstellen
- Wenn die Anwendung den Benutzer nicht zu HTTPS zwingt, ist sie anfällig für MitM
- Wenn die Anwendung sensible Daten (Passwörter) über HTTP sendet, ist das eine hohe Schwachstelle.
Verwenden Sie testssl.sh, um nach Schwachstellen zu suchen (In Bug-Bounty-Programmen werden solche Schwachstellen wahrscheinlich nicht akzeptiert) und verwenden Sie a2sv, um die Schwachstellen erneut zu überprüfen:
./testssl.sh [--htmlfile] 10.10.10.10:443
#Use the --htmlfile to save the output inside an htmlfile also
# You can also use other tools, by testssl.sh at this momment is the best one (I think)
sslscan <host:port>
sslyze --regular <ip:port>
Informationen über SSL/TLS-Sicherheitsanfälligkeiten:
- https://www.gracefulsecurity.com/tls-ssl-vulnerabilities/
- https://www.acunetix.com/blog/articles/tls-vulnerabilities-attacks-final-part/
Spidering
Starten Sie eine Art von Spider im Web. Das Ziel des Spiders ist es, so viele Pfade wie möglich aus der getesteten Anwendung zu finden. Daher sollten Web-Crawling und externe Quellen verwendet werden, um so viele gültige Pfade wie möglich zu finden.
- gospider (go): HTML-Spider, LinkFinder in JS-Dateien und externen Quellen (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com).
- hakrawler (go): HML-Spider, mit LinkFinder für JS-Dateien und Archive.org als externe Quelle.
- dirhunt (python): HTML-Spider, zeigt auch "saftige Dateien" an.
- evine (go): Interaktiver CLI HTML-Spider. Es sucht auch in Archive.org.
- meg (go): Dieses Tool ist kein Spider, kann aber nützlich sein. Sie können einfach eine Datei mit Hosts und eine Datei mit Pfaden angeben, und meg wird jeden Pfad auf jedem Host abrufen und die Antwort speichern.
- urlgrab (go): HTML-Spider mit JS-Rendering-Fähigkeiten. Es scheint jedoch, dass es nicht mehr gewartet wird, die vorcompilierte Version ist alt und der aktuelle Code kompiliert nicht.
- gau (go): HTML-Spider, der externe Anbieter (wayback, otx, commoncrawl) nutzt.
- ParamSpider: Dieses Skript findet URLs mit Parametern und listet sie auf.
- galer (go): HTML-Spider mit JS-Rendering-Fähigkeiten.
- LinkFinder (python): HTML-Spider, mit JS-Beautify-Fähigkeiten, die in der Lage sind, neue Pfade in JS-Dateien zu suchen. Es könnte sich auch lohnen, einen Blick auf JSScanner zu werfen, das ein Wrapper von LinkFinder ist.
- goLinkFinder (go): Um Endpunkte sowohl im HTML-Quellcode als auch in eingebetteten JavaScript-Dateien zu extrahieren. Nützlich für Bug-Jäger, Red-Teamer, Infosec-Ninjas.
- JSParser (python2.7): Ein Python 2.7-Skript, das Tornado und JSBeautifier verwendet, um relative URLs aus JavaScript-Dateien zu parsen. Nützlich, um AJAX-Anfragen leicht zu entdecken. Sieht unwartet aus.
- relative-url-extractor (ruby): Gegeben eine Datei (HTML) wird es URLs daraus extrahieren, indem es raffinierte reguläre Ausdrücke verwendet, um die relativen URLs aus hässlichen (minifizierten) Dateien zu finden und zu extrahieren.
- JSFScan (bash, mehrere Tools): Interessante Informationen aus JS-Dateien mit mehreren Tools sammeln.
- subjs (go): JS-Dateien finden.
- page-fetch (go): Laden Sie eine Seite in einem headless Browser und drucken Sie alle URLs aus, die zum Laden der Seite geladen wurden.
- Feroxbuster (rust): Inhaltserkennungstool, das mehrere Optionen der vorherigen Tools kombiniert.
- Javascript Parsing: Eine Burp-Erweiterung, um Pfade und Parameter in JS-Dateien zu finden.
- Sourcemapper: Ein Tool, das Ihnen den beautifizierten JS-Code liefert, wenn die .js.map-URL angegeben wird.
- xnLinkFinder: Dies ist ein Tool, das verwendet wird, um Endpunkte für ein bestimmtes Ziel zu entdecken.
- waymore: Entdecken Sie Links von der Wayback-Maschine (auch die Antworten in der Wayback herunterladen und nach weiteren Links suchen).
- HTTPLoot (go): Crawlen (auch durch Ausfüllen von Formularen) und auch sensible Informationen mit spezifischen Regexen finden.
- SpiderSuite: Spider Suite ist ein fortschrittlicher, multifunktionaler GUI-Websicherheits-Crawler/Spider, der für Cybersicherheitsprofis entwickelt wurde.
- jsluice (go): Es ist ein Go-Paket und Befehlszeilentool zum Extrahieren von URLs, Pfaden, Geheimnissen und anderen interessanten Daten aus JavaScript-Quellcode.
- ParaForge: ParaForge ist eine einfache Burp Suite-Erweiterung, um Parameter und Endpunkte aus der Anfrage zu extrahieren, um benutzerdefinierte Wortlisten für Fuzzing und Enumeration zu erstellen.
- katana (go): Tolle Tool dafür.
- Crawley (go): Drucken Sie jeden Link aus, den es finden kann.
Brute Force Verzeichnisse und Dateien
Starten Sie das Brute-Forcing vom Stammordner und stellen Sie sicher, dass Sie alle gefundenen Verzeichnisse mit dieser Methode und alle Verzeichnisse entdeckt durch das Spidering brute-forcen (Sie können dieses Brute-Forcing rekursiv durchführen und am Anfang der verwendeten Wortliste die Namen der gefundenen Verzeichnisse anhängen).
Tools:
- Dirb / Dirbuster - In Kali enthalten, alt (und langsam), aber funktional. Erlaubt automatisch signierte Zertifikate und rekursive Suche. Zu langsam im Vergleich zu den anderen Optionen.
- Dirsearch (python): Es erlaubt keine automatisch signierten Zertifikate, aber erlaubt rekursive Suche.
- Gobuster (go): Es erlaubt automatisch signierte Zertifikate, hat jedoch keine rekursive Suche.
- Feroxbuster - Schnell, unterstützt rekursive Suche.
- wfuzz
wfuzz -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt https://domain.com/api/FUZZ
- ffuf - Schnell:
ffuf -c -w /usr/share/wordlists/dirb/big.txt -u http://10.10.10.10/FUZZ
- uro (python): Dies ist kein Spider, sondern ein Tool, das eine Liste gefundener URLs löschen wird, um "duplizierte" URLs zu entfernen.
- Scavenger: Burp-Erweiterung zur Erstellung einer Liste von Verzeichnissen aus der Burp-Historie verschiedener Seiten.
- TrashCompactor: Entfernen Sie URLs mit duplizierten Funktionen (basierend auf JS-Imports).
- Chamaleon: Es verwendet Wappalyzer, um verwendete Technologien zu erkennen und die zu verwendenden Wortlisten auszuwählen.
Empfohlene Wörterbücher:
- https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/bf_directories.txt
- Dirsearch enthaltenes Wörterbuch
- http://gist.github.com/jhaddix/b80ea67d85c13206125806f0828f4d10
- Assetnote-Wortlisten
- https://github.com/danielmiessler/SecLists/tree/master/Discovery/Web-Content
- raft-large-directories-lowercase.txt
- directory-list-2.3-medium.txt
- RobotsDisallowed/top10000.txt
- https://github.com/random-robbie/bruteforce-lists
- https://github.com/google/fuzzing/tree/master/dictionaries
- https://github.com/six2dez/OneListForAll
- https://github.com/random-robbie/bruteforce-lists
- https://github.com/ayoubfathi/leaky-paths
- /usr/share/wordlists/dirb/common.txt
- /usr/share/wordlists/dirb/big.txt
- /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
Bedenken Sie, dass jedes Mal, wenn während des Brute-Forcings oder Spiderings ein neues Verzeichnis entdeckt wird, es brute-forced werden sollte.
Was bei jeder gefundenen Datei zu überprüfen ist
- Broken link checker: Finden Sie defekte Links in HTMLs, die anfällig für Übernahmen sein könnten.
- Dateisicherungen: Sobald Sie alle Dateien gefunden haben, suchen Sie nach Sicherungen aller ausführbaren Dateien (".php", ".aspx"...). Häufige Variationen zur Benennung einer Sicherung sind: file.ext~, #file.ext#, ~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp und file.old. Sie können auch das Tool bfac oder backup-gen** verwenden.**
- Neue Parameter entdecken: Sie können Tools wie Arjun, parameth, x8 und Param Miner verwenden, um versteckte Parameter zu entdecken. Wenn möglich, könnten Sie versuchen, versteckte Parameter in jeder ausführbaren Webdatei zu suchen.
- Arjun alle Standard-Wortlisten: https://github.com/s0md3v/Arjun/tree/master/arjun/db
- Param-miner “params” : https://github.com/PortSwigger/param-miner/blob/master/resources/params
- Assetnote “parameters_top_1m”: https://wordlists.assetnote.io/
- nullenc0de “params.txt”: https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773
- Kommentare: Überprüfen Sie die Kommentare aller Dateien, Sie können Anmeldeinformationen oder versteckte Funktionen finden.
- Wenn Sie CTF spielen, ist ein "gewöhnlicher" Trick, Informationen in Kommentaren auf der rechten Seite der Seite zu verstecken (indem Sie Hunderte von Leerzeichen verwenden, sodass Sie die Daten nicht sehen, wenn Sie den Quellcode im Browser öffnen). Eine andere Möglichkeit besteht darin, mehrere neue Zeilen zu verwenden und Informationen in einem Kommentar am unteren Ende der Webseite zu verstecken.
- API-Schlüssel: Wenn Sie einen API-Schlüssel finden, gibt es eine Anleitung, die angibt, wie man API-Schlüssel verschiedener Plattformen verwendet: keyhacks, zile, truffleHog, SecretFinder, RegHex, DumpsterDive, EarlyBird
- Google API-Schlüssel: Wenn Sie einen API-Schlüssel finden, der wie AIzaSyA-qLheq6xjDiEIRisP_ujUseYLQCHUjik aussieht, können Sie das Projekt gmapapiscanner verwenden, um zu überprüfen, auf welche APIs der Schlüssel zugreifen kann.
- S3-Buckets: Überprüfen Sie beim Spidering, ob eine Subdomain oder ein Link mit einem S3-Bucket verbunden ist. In diesem Fall überprüfen Sie die Berechtigungen des Buckets.
Besondere Funde
Während Sie das Spidering und Brute-Forcing durchführen, könnten Sie interessante Dinge finden, die Sie beachten sollten.
Interessante Dateien
- Suchen Sie nach Links zu anderen Dateien in den CSS-Dateien.
- Wenn Sie eine .git-Datei finden, können einige Informationen extrahiert werden
- Wenn Sie eine .env-Datei finden, können Informationen wie API-Schlüssel, Datenbankpasswörter und andere Informationen gefunden werden.
- Wenn Sie API-Endpunkte finden, sollten Sie diese ebenfalls testen. Diese sind keine Dateien, sehen aber wahrscheinlich "so aus".
- JS-Dateien: Im Abschnitt Spidering wurden mehrere Tools erwähnt, die Pfade aus JS-Dateien extrahieren können. Es wäre auch interessant, jede gefundene JS-Datei zu überwachen, da in einigen Fällen eine Änderung darauf hindeuten kann, dass eine potenzielle Sicherheitsanfälligkeit im Code eingeführt wurde. Sie könnten beispielsweise JSMon** verwenden.**
- Sie sollten auch entdeckte JS-Dateien mit RetireJS oder JSHole überprüfen, um herauszufinden, ob sie anfällig sind.
- Javascript Deobfuscator und Unpacker: https://lelinhtinh.github.io/de4js/, https://www.dcode.fr/javascript-unobfuscator
- Javascript Beautifier: http://jsbeautifier.org/, http://jsnice.org/
- JsFuck-Deobfuskation (JavaScript mit Zeichen: "[]!+" https://ooze.ninja/javascript/poisonjs/)
- TrainFuck:
+72.+29.+7..+3.-67.-12.+55.+24.+3.-6.-8.-67.-23.
- In mehreren Fällen müssen Sie reguläre Ausdrücke verstehen, die verwendet werden, dies wird nützlich sein: https://regex101.com/
- Sie könnten auch die Dateien überwachen, in denen Formulare erkannt wurden, da eine Änderung im Parameter oder das Auftreten eines neuen Formulars auf eine potenziell neue anfällige Funktionalität hinweisen kann.
403 Forbidden/Basic Authentication/401 Unauthorized (Umgehung)
{% content-ref url="403-and-401-bypasses.md" %} 403-and-401-bypasses.md {% endcontent-ref %}
502 Proxy-Fehler
Wenn eine Seite mit diesem Code antwortet, handelt es sich wahrscheinlich um einen schlecht konfigurierten Proxy. Wenn Sie eine HTTP-Anfrage wie: GET https://google.com HTTP/1.1
(mit dem Host-Header und anderen gängigen Headern) senden, wird der Proxy versuchen, auf google.com zuzugreifen, und Sie haben eine SSRF gefunden.
NTLM-Authentifizierung - Informationsoffenlegung
Wenn der laufende Server nach Authentifizierung fragt und Windows ist oder Sie ein Login finden, das nach Ihren Anmeldeinformationen (und nach dem Domänennamen) fragt, können Sie eine Informationsoffenlegung provozieren.
Senden Sie den Header: “Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”
und aufgrund der Funktionsweise der NTLM-Authentifizierung wird der Server mit internen Informationen (IIS-Version, Windows-Version...) im Header "WWW-Authenticate" antworten.
Sie können dies mit dem nmap-Plugin "http-ntlm-info.nse" automatisieren.
HTTP-Weiterleitung (CTF)
Es ist möglich, Inhalte in eine Weiterleitung einzufügen. Diese Inhalte werden dem Benutzer nicht angezeigt (da der Browser die Weiterleitung ausführt), aber etwas könnte dort versteckt sein.
Überprüfung von Web-Sicherheitsanfälligkeiten
Jetzt, da eine umfassende Enumeration der Webanwendung durchgeführt wurde, ist es an der Zeit, nach vielen möglichen Sicherheitsanfälligkeiten zu suchen. Sie finden die Checkliste hier:
{% content-ref url="../../pentesting-web/web-vulnerabilities-methodology.md" %} web-vulnerabilities-methodology.md {% endcontent-ref %}
Weitere Informationen zu Web-Sicherheitsanfälligkeiten finden Sie unter:
- https://six2dez.gitbook.io/pentest-book/others/web-checklist
- https://kennel209.gitbooks.io/owasp-testing-guide-v4/content/en/web_application_security_testing/configuration_and_deployment_management_testing.html
- https://owasp-skf.gitbook.io/asvs-write-ups/kbid-111-client-side-template-injection
Überwachen von Seiten auf Änderungen
Sie können Tools wie https://github.com/dgtlmoon/changedetection.io verwenden, um Seiten auf Änderungen zu überwachen, die Sicherheitsanfälligkeiten einfügen könnten.
Wenn Sie an einer Hacking-Karriere interessiert sind und das Unhackbare hacken möchten - wir stellen ein! (fließend Polnisch in Wort und Schrift erforderlich).
{% embed url="https://www.stmcyber.com/careers" %}
HackTricks Automatische Befehle
Protocol_Name: Web #Protocol Abbreviation if there is one.
Port_Number: 80,443 #Comma separated if there is more than one.
Protocol_Description: Web #Protocol Abbreviation Spelled out
Entry_1:
Name: Notes
Description: Notes for Web
Note: |
https://book.hacktricks.xyz/pentesting/pentesting-web
Entry_2:
Name: Quick Web Scan
Description: Nikto and GoBuster
Command: nikto -host {Web_Proto}://{IP}:{Web_Port} &&&& gobuster dir -w {Small_Dirlist} -u {Web_Proto}://{IP}:{Web_Port} && gobuster dir -w {Big_Dirlist} -u {Web_Proto}://{IP}:{Web_Port}
Entry_3:
Name: Nikto
Description: Basic Site Info via Nikto
Command: nikto -host {Web_Proto}://{IP}:{Web_Port}
Entry_4:
Name: WhatWeb
Description: General purpose auto scanner
Command: whatweb -a 4 {IP}
Entry_5:
Name: Directory Brute Force Non-Recursive
Description: Non-Recursive Directory Brute Force
Command: gobuster dir -w {Big_Dirlist} -u {Web_Proto}://{IP}:{Web_Port}
Entry_6:
Name: Directory Brute Force Recursive
Description: Recursive Directory Brute Force
Command: python3 {Tool_Dir}dirsearch/dirsearch.py -w {Small_Dirlist} -e php,exe,sh,py,html,pl -f -t 20 -u {Web_Proto}://{IP}:{Web_Port} -r 10
Entry_7:
Name: Directory Brute Force CGI
Description: Common Gateway Interface Brute Force
Command: gobuster dir -u {Web_Proto}://{IP}:{Web_Port}/ -w /usr/share/seclists/Discovery/Web-Content/CGIs.txt -s 200
Entry_8:
Name: Nmap Web Vuln Scan
Description: Tailored Nmap Scan for web Vulnerabilities
Command: nmap -vv --reason -Pn -sV -p {Web_Port} --script=`banner,(http* or ssl*) and not (brute or broadcast or dos or external or http-slowloris* or fuzzer)` {IP}
Entry_9:
Name: Drupal
Description: Drupal Enumeration Notes
Note: |
git clone https://github.com/immunIT/drupwn.git for low hanging fruit and git clone https://github.com/droope/droopescan.git for deeper enumeration
Entry_10:
Name: WordPress
Description: WordPress Enumeration with WPScan
Command: |
?What is the location of the wp-login.php? Example: /Yeet/cannon/wp-login.php
wpscan --url {Web_Proto}://{IP}{1} --enumerate ap,at,cb,dbe && wpscan --url {Web_Proto}://{IP}{1} --enumerate u,tt,t,vp --passwords {Big_Passwordlist} -e
Entry_11:
Name: WordPress Hydra Brute Force
Description: Need User (admin is default)
Command: hydra -l admin -P {Big_Passwordlist} {IP} -V http-form-post '/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log In&testcookie=1:S=Location'
Entry_12:
Name: Ffuf Vhost
Description: Simple Scan with Ffuf for discovering additional vhosts
Command: ffuf -w {Subdomain_List}:FUZZ -u {Web_Proto}://{Domain_Name} -H "Host:FUZZ.{Domain_Name}" -c -mc all {Ffuf_Filters}
{% hint style="success" %}
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstütze HackTricks
- Überprüfe die Abonnementpläne!
- Tritt der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folge uns auf Twitter 🐦 @hacktricks_live.
- Teile Hacking-Tricks, indem du PRs zu den HackTricks und HackTricks Cloud GitHub-Repos einreichst.