È possibile eseguire un'iniezione SQL qui? [chiuso]

-4

Sono uno studente in sicurezza informatica e mi sto allenando per una certificazione.

Ho questo URL che voglio attaccare (in un laboratorio di formazione):

http://URL/search/blabla/1

Ho sostituito "1" con lettere, come segue:

http://URL/search/blabla/aaa

Che crea questo messaggio di errore (Ho rimosso alcune parti per renderlo più chiaro):

Fatal error: .... in query — SELECT * FROM Books WHERE 1 AND (LOWER(title) LIKE '%blabla%' OR LOWER(blurb) LIKE '%blabla%') AND (publish_date IS NULL OR publish_date <= '2016-08-23') ORDER BY date DESC LIMIT -5,5'

Quindi, prima ho provato a uscire dalla citazione con %') , aggiungere una nuova richiesta e annullare con # :

%'); SELECT * FROM Books;#

=>Bad Request, Your browser sent a request that this server could not understand.

Secondo tentativo, questa volta copio il resto della richiesta indicata nel messaggio di errore e lo annullo con # :

%') AND (publish_date IS NULL OR publish_date <= '2016-08-23') ORDER BY date DESC LIMIT -5,5'#

=> Bad Request again !

Pensi che un'iniezione SQL sia possibile qui?

    
posta mric750 23.08.2016 - 16:49
fonte

1 risposta

1

La cattiva richiesta non indica nulla sull'applicazione. Invece, indica che Apache non ha potuto analizzare la richiesta prima di passarla all'applicazione web. Prendi ad esempio il seguente link, che dà lo stesso errore:

http://www.apache.org/icons/%');%20SELECT%20*%20FROM%20Books;#

QuestoperchéilsegnodellapercentualehaunsignificatospecialeinunURL.Sepassiiparametrinell'URL,dovresticodificarliinurl:

%25%27)%3B%2520SELECT%2520*%2520FROM%2520Books%3B%23

UnacosachenotoècheancheseottieniunerroreSQL,ilvaloreiniettato"aaa" non è presente nella query SQL mostrata. Ciò rende difficile stabilire se sia vulnerabile all'iniezione SQL.

Uno strumento che può aiutarti in questo è sqlmap . È abbastanza utile trovare automaticamente l'iniezione SQL su un dato parametro.

    
risposta data 24.08.2016 - 09:33
fonte

Leggi altre domande sui tag