Visualizzazione dei risultati da 1 a 2 su 2

Discussione: sql injection

  1. #1

    sql injection

    Ciao ragazzi ho creato un mio sito web per provare degli attacchi sql injection.

    index.html:
    codice HTML:
    <html>
      <head>
        <title>Selezione tabella</title>
      </head>
      <body>
        <form method="POST" action="conn.php">
          <input type="text" name="ricerca" placeholder="RICERCA"/>
          <input type="submit" name="invia" value="CERCA"/>
      </body>
      </html>
    pagina.php


    Codice PHP:
    <?php

    include('connessione.php');

    $ricerca $_POST['ricerca'];

    $ricerca_1 "SELECT * FROM libri WHERE nomi LIKE '%$ricerca%'";
    $ricerca_2 mysqli_query($connessione$ricerca_1);

    while(
    $ricerca_3 mysqli_fetch_assoc($ricerca_2)) {

                       echo 
    $ricerca_3['nomi'];
                       echo 
    '<br>';}




    ?>
    Vorrei da questo script fare una sql injection in modo che mi risponda con, per esempio, il nome delle tabelle, il problema è che poi con "$ricerca_3['nomi']" mi visualizzerà sempre e solo i nomi e non altre cose..

    Per esempio se scrivo: ' UNION SELECT * FROM information_schemas.table poi come faccio a stamparle a video?

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Prima cosa : Nella query fai una select di tutti i campi di una tabella e il resto del tuo codice ne tiene conto. Quindi non otterai mai quello che vuoi.

    Seconda cosa : mysqli_query accetta una sola query. Quindi non puoi aggiungerne una seconda usando il separatore ;

    Se mi arrangio per fare eseguire la query seguente con mysqli_query ottengo un errore di sintassi. Mentre funziona benissimo con phpMyAdmin cioè mi distrugge la tabella pippo.

    codice:
    SELECT * FROM libri WHERE nomi LIKE '%' or 1=1;drop table pippo;select 1 from 
    dual where 1=1 or 1='%'
    La SQL injection nel tuo caso potrebbe limitarsi a selezionare più record del previsto. Diventa pericolosa nel caso in cui si tratta di loggarsi ad un pannello di amministrazione per esempio.

    Immaginiamo che tu abbia la query seguente (come ne vedo molte nei post degli utenti del forum) :

    codice:
    select * from tabella_user where user = $_POST['user'] and password = $_POST['password']
    Basterebbe settare user e password a A' or 'A'='A per avere un esito positivo della query. Ovviamente se si controlla il numero delle righe tornate dalla query si puo' intravedere il problema perche ce ne saranno più di una. Ma chi pensa a questo ?
    Ultima modifica di badaze; 18-06-2015 a 01:06
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

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.