Durante las pruebas manuales de inyección de SQL, me topé con esto.
¿Hay alguna forma de evitar estos filtros que supuestamente impiden un ataque basado en UNION
?
<?php
error_reporting(0);
include('db.inc.php');
$id=strtolower($_GET['id']);
$counter = 0;
if(strpos($id,"union")!=false){
$counter++;
}
if(strpos($id,"select")!=false){
$counter++;
}
if($counter==2) {
echo "Go Away Get a Life";
}else{
echo "<font color=green size=4>Query Coming is : ".$id."<br/></font>";
$query = "SELECT username,password FROM admin WHERE username='".$id."' ORDER BY 1";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
echo "Username : ".$row['username']."<br/>";
echo "Password : ".$row['password']."<br/>";
}
}
?>
Además, ¿cuál es la mejor manera de prevenir un ataque SQLi basado en UNION
?