Utilizzo di INTO OUTFILE con INSERT

2

Ho del tempo libero, quindi sto testando varie macchine vulnerabili locali. In una particolare macchina da laboratorio, devi prima ottenere il pannello di amministrazione, quindi utilizzare il comando "inserisci" disponibile e scrivere un file testuale nella directory. Il servizio in background è il controllo del file scritto.

Ho trovato la password del pannello di amministrazione ma non utilizzando SQL injection su SELECT, ma attraverso la connessione a una rete con porta che risolve il nome utente e la password. Ora, per quanto ne so, se ci fosse una vulnerabilità di SQL injection su SELECT, avrei potuto facilmente INTO OUTFILE una particolare colonna nel file di dati, ma questa volta, dovrò usare INSERT dato che l'input viene inviato attraverso il pannello di amministrazione al query mysql. Mi interessa che ci sia un comando o un carico utile equivalente a INTO OUTFILE usando INSERT o qualsiasi altro modo. Sto pensando di utilizzare DATI CARICO MySQL ma non riesco a concludere il mio gira intorno a esso.

La chiamata deve essere fatta in questo modo:

LOAD DATA INFILE 'foo.txt' INTO TABLE t FIELDS  TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 LINES (name, address, city, @skip, state, @skip, ...) [ SET col = <expr>, ... ]

Un'altra cosa, ho caricato il file con successo dal file system usando load_file ('filename') così ho concesso almeno un account utente per la lettura.

Altre informazioni:
Macchina : Linux RS x11 CERT UTIC (laboratorio di test)
Database : MySQL 5.x
Applicazione lingua : PHP

Grazie e cordiali saluti.

    
posta sensation 17.02.2015 - 01:00
fonte

1 risposta

1

Guardando la sintassi di selezione MySQL , puoi vedere che supporta into outfile alla fine di una query. Se guardi MySQL Insert Syntax , vedrai che non c'è alcun riferimento a %codice%. C'è una buona ragione per questo, insert sta modificando il database, e una select sta ottenendo dati, e il into outfile è un modificatore di dove vanno quei dati. Dal punto di vista dello sviluppatore è nessun motivo per dare la possibilità di scrivere nei file.

Tuttavia, non tutto è perduto. La possibilità di inserire dati apre la porta a iniezione del codice del secondo ordine .

    
risposta data 17.02.2015 - 15:56
fonte

Leggi altre domande sui tag