Istruttore: Okay, quindi ora
sappiamo che possiamo inserire qualsiasi
codice che vogliamo, qui, e verrà eseguito sul sistema.
Quindi, diamo un'altra occhiata ora alla dichiarazione.
Quindi la dichiarazione dice, selezionare * dagli account, dove il
nome utente è uguale al nome utente che abbiamo inserito qui
e la password è uguale alla password che abbiamo messo lì.
Vediamo se possiamo usarlo, per accedere senza usare una password,
senza nemmeno conoscere la password.
E lo farò con l'amministratore.
Quindi, l'amministratore, il nome utente sarà admin.
E non so quale sia la password per l'amministratore.
Quindi, quello che farò,
metterò qualsiasi cosa, quindi niente, una password
casuale, e, nel codice, dovrei correre qui.
Quindi stavamo facendo, e 1 = 1 e, o cose
del genere, quindi, quello che farò è, lo farò
o, invece di e.
E dirò 1 = 1.
Quindi, quale sarà il nostro codice, una
volta
eseguito, una volta iniettato, andrà qui, come
stiamo facendo prima.
Quindi, il nostro codice sarà simile a questo,
quindi sarà.
Seleziona * dagli account, dove
il nostro nome utente è uguale a admin.
E la password è uguale a AAA.
Ora questo è sbagliato.
O 1 = 1, che
è giusto.
Quindi, ogni volta che hai un o, se la condizione o è
giusta, tutto è giusto.
Questo è il modo in cui funziona la dichiarazione.
Quindi, seleziona * dagli account.
Siamo utente uguale a admin,
ok, username è uguale a admin.
E la password è uguale a AAA, è sbagliato.
O 1 = 1, okay, lo accetterò.
E poi, in realtà lo
eseguirà e ci farà accedere all'amministratore senza nemmeno conoscere
la password per l'amministratore.
Quindi proviamo a iniettare questo ora.
E come puoi vedere, sono stato in grado di accedere, come
amministratore, e scimmia è la firma per l'amministratore.
Ora, bypassare e accedere può essere fatto in molti modi, a
seconda del codice scritto sulla pagina.
E a seconda del modo in cui vuoi farlo
e di come stai immaginando il codice.
E molti casi, quando metti qui la sola citazione,
non vedrai questo messaggio.
A volte lo vedi,
il che rende il tuo lavoro molto più semplice.
Se non lo fai, allora devi
indovinare che aspetto ha.
Quindi ti mostrerò un altro esempio di bypass.
Invece di iniettare il codice in
questo modo, anche il parametro admin è effettivamente iniettabile,
come hai visto quando ho messo questa
singola citazione, il parametro admin è iniettabile, esattamente allo stesso
modo della password.
Quindi possiamo inserire codice anche nel nome utente.
E cosa farò ora, quindi diamo un'occhiata
a questo, e lo ripristinerò come dovrebbe
essere.
Quindi, avremmo e il nome utente e la password, fuori dai campi
che qualunque cosa tu abbia inserito
qui, verranno sostituiti e il nome utente e la password.
Quindi, proviamo a iniettare qualcosa nel nome utente, e
quello che sto per dire è, sto per
dire, il nome utente è uguale a
admin, quindi chiuderò il preventivo da solo,
e poi Aggiungi un commento.
Quindi, la mia dichiarazione, quando eseguo la dichiarazione,
sembrerà così, e in realtà
la copierò qui.
E, quando ne inserisco uno, quando inserisco questo codice qui, a
mio nome.
Lo inietterà qui, quindi questo è
come apparirà il codice.
Selezionerà start dagli account,
dove username è uguale a admin.
Ho chiuso la citazione da solo qui, usando questo proprio lì.
E poi aggiungo un commento, quindi sostanzialmente
non verrà nemmeno eseguito, quindi il
codice sarà questo, verrà selezionato *
dagli account, dove username è
uguale a admin.
E mi permetterà di accedere
senza inserire nulla nella
password, quindi facciamolo.
Metterò il mio nome utente come amministratore, chiudo
il preventivo e aggiungo un commento.
E poi puoi inserire qualsiasi password tu voglia.
Metterò solo il numero 1,
quindi accederò.
E come puoi vedere, sono riuscito ad accedere come amministratore.
Quindi di nuovo, in questo è il test della
scatola nera, quindi non vedi davvero il codice.
In molti casi vuoi giocarci intorno e
vedere come funziona con te.
Ma la cosa principale è che vuoi testare se l'iniezione di
SQL esiste e la useresti usando il metodo che ti
abbiamo mostrato nel video precedente.
Quindi prova una singola citazione, prova l'istruzione
e, prova true e istruzioni, quindi 1 = 1,
quindi un falso e un'istruzione, quindi 1 =
0 o 2 = 0, e se funzionano come previsto, allora sei
target ha un'iniezione SQL e
puoi iniziare a giocarci.