È possibile verificare se un sito Web è vulnerabile a SQLi visualizzando il suo codice sorgente?

0

Ho sentito che la funzione eval() è vulnerabile a SQLi.

Posso verificare le vulnerabilità semplicemente visualizzando il codice sorgente del sito web?

    
posta Rifat Shommo 26.07.2018 - 00:42
fonte

4 risposte

1

Dipende da cosa intendi per "codice sorgente".

Se si utilizza la funzione "visualizza sorgente" in un browser Web, ciò non è sufficiente. Questo mostra il codice lato client, mentre SQLi si verifica sul lato server.

Se si esamina il codice sorgente completo che è in esecuzione sul server, allora sì, esaminarlo può farti trovare problemi SQLi. È anche possibile trovare SQLI decompilando i file eseguibili se un sistema utilizza ASP senza file di origine sul server ma non riesce a proteggere i file compilati dal download.

    
risposta data 26.07.2018 - 07:42
fonte
2

Il tipico attacco di SQL injection può verificarsi quando la stringa di comando SQL è concatenata per includere una voce utente:

$sql = "SELECT * FROM users WHERE user_name = '".$user_name."'";

Un utente malintenzionato potrebbe inserire un nome utente come

my name'; DROP TABLE users; --

Indovina cosa succede!

È meglio utilizzare istruzioni preparate e query parametrizzate .

    
risposta data 26.07.2018 - 01:12
fonte
0

eval() ti consente di valutare il codice, quindi puoi avere un'iniezione di codice. Esempio: eval("echo 2;"); stamperà 2 in PHP.

In PHP hai anche shell_exec() dove puoi eseguire i comandi della shell.

Puoi controllare diversi tipi di iniezione qui .

Guardare al codice sorgente del sito Web è un modo valido per controllare i collegamenti ad altre pagine e verificare quali parametri di query vengono utilizzati. Puoi anche controllare i moduli.

Un altro modo è controllare la scheda Rete per visualizzare quali informazioni vengono inviate e ricevute dal tuo browser. Prova a dare un'occhiata a Burp Suite , ti aiuterà a capire meglio come intercettare le richieste e manometterle per verificare alcune vulnerabilità .

    
risposta data 26.07.2018 - 00:48
fonte
0

In realtà, se si ha accesso alla sorgente di back-end allora sì, sarete in grado di identificare SQLi , ma in un altro caso no, lo faccio sempre manualmente, testando tutti i parametri di input , ad esempio riempiendo nome utente e password con 'OR' 1 = 1 & eccetera... Scoprire se il codice SQL sta disinfettando i parametri del post.

    
risposta data 26.07.2018 - 07:59
fonte

Leggi altre domande sui tag