Qualunque server SQL / noSQL accetta * (asterisco) come carattere jolly?

0

Sto testando un sito Web e ho trovato un endpoint che accetta un indirizzo e-mail e restituisce una risposta HTTP 200 se tale e-mail è registrata, o 401 se tale e-mail non è registrata. Ma ho anche notato che è possibile usare caratteri jolly come * o? nel parametro email. Ad esempio, se digito myregisteredemail@*.com, otterrò una risposta HTTP 200, ma se digito nonexistingemail@*.com, otterrò una risposta 401. I caratteri jolly possono essere utilizzati ovunque nell'e-mail.

So che questo comportamento potrebbe essere facilmente utilizzato per l'enumerazione delle e-mail, ma sto cercando di capire se c'è qualche altra iniezione che sarebbe più critica.

Ho testato molti payload SQLi, ma senza successo, e per quanto ne so, tutto il prodotto SQL utilizza% come carattere jolly e non * (% non funziona in questo esempio come carattere jolly). Qualcuno è a conoscenza di un prodotto SQL o noSQL che utilizza * come carattere jolly?

    
posta pineappleman 04.11.2016 - 18:31
fonte

2 risposte

4

Se * sembra essere un carattere jolly, potrebbe essere LDAP, probabilmente una query a Windows ActiveDirectory.

La cosa buona in Active Directory è che la struttura LDAP è nota, quindi puoi avere un'idea di come bypassare l'autenticazione. Questo per esempio è un riferimento per gli attributi di un utente in AD. Potrebbe anche essere una struttura LDAP personalizzata.

OWASP ha alcune idee per Iniezione LDAP .

    
risposta data 04.11.2016 - 18:55
fonte
1

No, entrambi questi database SQL no.

L'asterisco viene utilizzato nelle istruzioni per selezionare tutte le colonne che non corrispondono a specifiche colonne.

Il suo utilizzo è: SELECT * FROM Accounts WHERE Email = '[email protected]'

Ciò restituirebbe l'intera riga della tabella (s) in cui la colonna Email è uguale a [email protected].

Il più vicino ai caratteri jolly sarebbe quando si utilizza l'operatore LIKE . Ma i simboli usati sono il segno di percentuale e il carattere di sottolineatura.

Il suo utilizzo è: SELECT * FROM Accounts WHERE Email LIKE 'user@%.com'

Ciò restituirebbe le righe della tabella completa in cui la colonna Email inizia con user @ e termina con .com. Se si utilizza il carattere di sottolineatura, cercherà solo un carattere jolly invece di tutti i caratteri jolly possibili. Questi possono anche accettare espressioni regolari e mirare a specifiche informazioni jolly.

Microsoft Access e Bash , tra l'altro, d'altra parte utilizza i caratteri jolly a cui ti riferisci.

    
risposta data 04.11.2016 - 19:48
fonte

Leggi altre domande sui tag