Istruttore: In
questa lezione, vorrei mostrarti come possiamo usare le iniezioni SQL
per leggere qualsiasi file nel server,
quindi anche se il file esiste al di fuori della
radice www, saremo in grado
di leggerlo esattamente come una divulgazione di
file vulnerabilità e vedremo anche come
utilizzarlo per scrivere file e caricarli sul sistema
proprio come una vulnerabilità di upload di file.
Quindi la prima cosa che vedremo è
la lettura del file.
E imposterò tutto su null qui.
Quindi ho la mia dichiarazione
qui e ho intenzione di selezionarne
una, e lascerò
il numero due perché farò cose su questo.
E faremo altri tre null qui.
Quindi
null, null, null.
Quindi abbiamo selezionato null qualcosa null, null, null.
Quindi cinque perché abbiamo cinque registrazioni
quando abbiamo fatto l'ordine.
E invece di selezionare qualcosa, ricorda,
nel terzo video,
abbiamo selezionato il database, ad esempio, e ci
mostra il database corrente.
Quello che
voglio fare ora è che voglio fare un'altra
funzione e quella funzione si chiama load_file.
E qui, imposterò il file che
voglio caricare e userò lo stesso file
che
abbiamo visto nella vulnerabilità dell'inclusione
dei file ed era etc / passwd.
Quindi stiamo provando a leggere quel
file e la nostra dichiarazione è unione selezionare quel file e il gioco è fatto.
Quindi copierò questo.
E lo inietterò
qui e aggiungerò il mio% 23
che è il mio comando.
E come puoi
vedere, siamo riusciti a leggere tutte le
informazioni, tutto il contenuto di etc / passwd anche se
non è nella radice web.
Quindi è memorizzato in etc / passwd.
Quindi possiamo leggere qualsiasi cosa nel server
da altri siti
Web, da altri file ovunque nel
server, possiamo
leggerlo specificando il percorso completo di quel file.
La prossima cosa che
vorrei mostrarti è scrivere sul server.
Quindi in realtà scriveremo cose sul
server e questo è molto
utile perché si sarebbe in grado di scrivere qualsiasi codice desiderato,
quindi ad esempio, è possibile scrivere il codice per uno script
PHP, è possibile scrivere un codice di una shell, un virus
o un codice PHP per ottenere altre connessioni.
Quindi fondamentalmente si
comporterà come una vulnerabilità di upload di file.
E per
farlo scriverò il codice che
voglio fare qui e
lo chiamerò, per esempio, solo un esempio.
E useremo una funzione chiamata outfile, quindi entreremo
in outfile e poi
specificheremo dove
vogliamo archiviare quel file.
Ora, nel migliore dei casi,
saresti in grado di scrivere sulla tua radice
web e ciò significherà che puoi accedere al
file tramite il browser ed eseguirlo,
quindi puoi caricare un file Weevely e quindi collegarti
ad esso
e fare cose come quello.
Quindi proviamo a farlo prima.
Quindi lo faremo in var / www e questa è la nostra radice
web, così saremo in grado di accedere
alle cose
attraverso di esso o puoi metterlo anche var / www e
poi mettere mutillidae dopo di
esso per memorizzarlo lì.
Quindi il comando è molto semplice.
Ancora una volta unione selezionare.
Assicurati di impostare tutto
su null in modo che nulla venga scritto
nel file
tranne quello che hai inserito qui
e io metto un esempio e verrà
memorizzato nel nostro file in var /
www / mutillidae e ricordalo. testo.
Proviamo a eseguirlo e vediamo se funziona.
Ora, questo non ha funzionato.
E se
vieni qui, vedrai che SQL o MySQL non sono
autorizzati a creare o scrivere in questa directory.
Quindi il problema è che non
lo siamo, le autorizzazioni
che abbiamo non ci consentono di scrivere in questa posizione particolare.
Quindi, solo per testare questo
exploit, ho intenzione di cambiare questa posizione in tmp, che è
la temperatura
e vedrai che puoi effettivamente scrivere a temp, quindi
nella vita reale negli scenari, dipende,
puoi provarlo e vedere se sei in grado
di scrivere cose o no.
In questo, stiamo provando a scrivere
a temp
ora e se
leggiamo in temp, se lo cancelliamo e poi ls e
/ tmp vedrai che abbiamo
qualcosa chiamato esempio e se
provi a leggerlo, vedi che contiene, ovviamente
contiene
il contenuto di ciò che abbiamo
fatto prima che era la normale selezione che avresti visto.
Quindi quello che vedi per mettere le cose per l'amministratore e poi ci
ha mostrato cosa c'è dentro che è
un esempio di esempio
che è quello che volevamo scrivere nel file.
Ora puoi ovviamente sbarazzarti dell'amministratore
e delle cose
dell'amminpass semplicemente inserendo un
nome utente errato e nulla
verrà visualizzato qui, quindi l'unica cosa che
vedrai è l'output che è esempio di esempio.
Ma ancora una volta, questo è utile
solo se sei in grado di scrivere sul tuo
server web, quindi puoi accedervi
e quindi utilizzare
la tua shell o utilizzare il tuo payload e sfruttare ulteriormente il sistema.