Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di nourdine
    Registrato dal
    Nov 2005
    Messaggi
    1,130

    chiarimenti sulle iniezioni

    volevo alcune elucidazioni sulle iniezioni sql. Per ipotesi facciamo che l'escape dei ' e dei " non sia fatta da php. Allora noi abbiamo il db con una tabella users in cui ci sono username e password degli utenti del sevizio. noi nel campo password del form per l'accesso inseriamo una stringa tautologica del tipo:

    123' OR '1'='1

    fin qui è tutto chiaro. In riferimento alla query:

    SELECT * FROM users WHERE user='username' AND password = '123' OR '1'='1'

    possiamo dire che il secondo congiunto (quello che sta a destra dell'AND) risulta necessariamente verificato dall'input immesso. Ma la query per essere vera deve soddisfare la congiunzione AND. Essa risulta vera quando anche user='username' viene resa vera. E in questo caso mi sembra che è condizione necessaria conoscere il vero nome che l'utente usa per il login. Quindi mi sembra di aver capito che se anche la iniziezione risolve il problema della password in realtà lascia inalterato quello della username. Si deve quindi usare un input simile a quello usato per la password anche con la username? Ma ste cazzo di iniezioni voi le avete mai subite o performate? perche a me mi par tanto fantascienza!!!

  2. #2
    ci sono moltissimi scritti che trattano delle sql injection... fai una ricerca in proposito, il materiale abbonda.

    Quello che volevo invece farti notare e' l'erronea interpretazione della query che hai portato ad esempio. Data la precedenza degli operatori AND ed OR la query sarebbe:

    SELECT * FROM users
    WHERE
    (user = 'username' AND password = '123')
    OR '1'='1'

    per cui risulta SICURAMENTE vero che 1 = 1 e quindi passera' TUTTI i record della tabella a prescindere dal risultato della AND....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it L'avatar di nourdine
    Registrato dal
    Nov 2005
    Messaggi
    1,130
    non sapevo dell'ordine di precedenza tra oparatori logici!!!! allora l'espressione è necessariamente vera punto e basta. Bisogna che mi studio meglio sql.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.