Applicazioni Web e codici di stato HTTP
Se restituisce 200 sia su una pagina non autorizzata (302 Reindirizza a 200 pagine di accesso), sia su una pagina autorizzata (pagina autorizzata scoperta), ci sono alcune cose che puoi fare:
-
Puoi cercare ciò che accade su un accesso riuscito. Crea un account falso, accedi. Guarda cosa non viene incluso nella pagina reale e cosa no. Ecco come troverai la tua stringa unica.
- Ricorda: se esiste un WAF o qualcosa del genere, potrebbe semplicemente iniziare a reindirizzare tutte le richieste in arrivo a 3xx / 4xx, sia che si tratti di richieste valide o non valide.
-
Analizza la risposta HTTP per il codice HTML o una stringa che non viene visualizzata nella pagina di accesso , OPPURE una stringa che viene visualizzata SOLO nella pagina di accesso.
- Ad esempio, potrebbe apparire la stringa "Non autorizzato" o "Accedi". Vorresti escludere le risposte con quelle stringhe.
Entrambi possono essere eseguiti usando Python, o qualsiasi linguaggio di scripting / programmazione che si desidera usare, incluso bash. Bash, tuttavia, sarà molto più lento.
Potresti fornire un esempio per favore?
Certo. Vedi sotto.
1. Utilizzando Python
Dovrai modificare questo. È un codice di esempio rapido.
import pycurl
import urllib
import sys
from StringIO import StringIO
c = pycurl.Curl()
html = StringIO()
c.setopt(pycurl.WRITEFUNCTION, html.write)
c.setopt(c.VERBOSE, 0)
def send_req(url):
field = urllib.urlencode(payload)
c.setopt(c.URL, url)
c.setopt(c.VERBOSE, 0)
c.perform()
if "successful non-login-page string to search for" in html.getvalue():
html = StringIO() # Reset
return True
return False
with open("dir-or-file-list.txt") as f:
for line in f:
if send_req("http://haxlogin.page/" + line + ") == True:
print "[!] Found a valid page: %s" % line
Non ho tempo per controllare se questo Python funziona, è solo un esempio generale su come potresti farlo funzionare con Python, quindi dovrai modificarlo.
2. Utilizzo di Burp Suite Pro
Con Intrusione Burp , nella finestra di dialogo di attacco , puoi utilizzare filter
. Imagine 2xx restituisce "Non autorizzato" come codice / stringa univoci. Dovrai escludere "Non autorizzato" dalla ricerca in questo modo:
Filtro:
- Filtro per termine di ricerca "Non autorizzato", ricerca negativa
- Filtra per codice di stato: 2xx [successo]
3. Utilizzando OWASP Dirbuster
Options -> Advanced Options -> Scan Options -> Fail Case String -> Enter a string that appears only on the login page
302 Reindirizzamenti
Ricorda: molte applicazioni eseguono un reindirizzamento 302 dopo aver pubblicato qualcosa con successo.
Questo non significa necessariamente che un reindirizzamento 302 è sbagliato o che non hai trovato nulla. Usa curl -L
per seguire il reindirizzamento e vedere dove ti arriva.
Probabilmente vorrai anche controllare il contenuto della pagina reindirizzata in modo da non perdere nulla.