SQL Injection só é possível quando o site te informa qual o erro que o banco de dados caso não seja possível fazer a consulta no banco de dados.
Por exemplo:
<?php
$id = $_GET['id'];
$q = "SELECT * FROM noticias WHERE id = '$id'";
$r = mysql_query($q) or die(mysql_error());
?>
Como vimos ali, caso não seja possível enviar a consulta ao MySQL, o script é interrompido exibindo a mensagem de erro da operação enviada ao MySQL.
Se eu entrar em http://www.fvox.com/noticias.php?id=10%27
(lembrando que %27 equivale a uma aspa simples ').
A query a ser enviada seria a seguinte:
SELECT * FROM noticias WHERE id = '10''
A aspa inserida na URL iria modificar a sintaxe da consulta, então a função mysql_error()
retornaria algo parecido com:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in (LOCAL DA VULNERABILIDADE) on line 4
É claro que o servidor pode emitir outros erros, mas desde que exiba um erro, já é
alguma coisa para que você possa realizar seus PENTESTS com grande esperança, o que te motiva bastante.
