Il numero di colonne della tabella SQL cambia con la query di iniezione?

2

Una domanda di iniezione sql molto semplice qui, ho trovato uno SQLi su un sito web mysql con product.php?id=200 .

Per prima cosa ho stancato ORDER BY per calcolare il numero di colonna di quella tabella di product.php?id=200 order by 13

che risulta essere 12 colonne, l'errore mostra nell'ordine di 13 è

Error: SELECT * FROM 'category' WHERE is_active='1' AND id =200 order by 13

Unknown column '13' in 'order clause'

Tutto sembra a posto, quindi ho provato a capire i nomi delle tabelle,

product.php?id=200 union select table_name,2,3,4,5,6,7,8,9,10,11,12 from 
information_schema.tables

e mostra

Error: SELECT * FROM 'products' WHERE is_active='1' AND id =200 union select 
table_name,2,3,4,5,6,7,8,9,10,11,12 from information_schema.tables

The used SELECT statements have a different number of columns

Indipendentemente dal numero di numeri che inserisco nella query selezionata, mostra sempre lo stesso errore, presumo che nel backend ci siano alcune attività dinamiche, ma non sono sicuro di cosa, e come dovrei procedere, qualsiasi suggerimento per favore ? Grazie!

    
posta tomu 30.12.2017 - 10:33
fonte

1 risposta

1

Stai facendo l'iniezione in due query diverse (una che seleziona da category , una da products ), che seleziona da tabelle con un numero di colonne diverso. Quando correggi un conteggio di colonne, l'altro non corrisponde più.

Non puoi allo stesso tempo dare un conteggio delle colonne diverso - e probabilmente non puoi saltare una delle query -, quindi una semplice iniezione unione non funzionerà.

Poiché gli errori vengono visualizzati, è possibile utilizzare una semplice iniezione basata su errori. Se non sono stati visualizzati errori, è comunque possibile utilizzare un'iniezione cieca basata sui tempi e possibilmente sul contenuto (vedere qui per gli esempi per tutti e tre). In ogni caso, è probabile che tu voglia inserire la prima query (dipende un po 'da come vengono gestiti gli errori).

    
risposta data 30.12.2017 - 11:10
fonte

Leggi altre domande sui tag