Estaba programando PHP y al abrir el navegador k-meleon y se me ocurrió una idea... ¿y si inyectamos código HTML en el UserAnget? o mejor aún... ¿y si hacemos SQL Injection?
XSS Injection
<?php
echo $HTTP_USER_AGENT
?>
SQL Inyection
<?php
echo "<a href='".$_SERVER['PHPSELF']."?act=1'>Registrarse</a> |
<a href='".$_SERVER['PHPSELF']."'>Listado</a><br><br>";
$act = $_GET['act'];
if ($act == 1) {
$IP=getenv("REMOTE_ADDR");
echo $HTTP_USER_AGENT;
mysql_query("Insert into browsers (UserAgent, IP) values ('$HTTP_USER_AGENT', '$IP'), $link");
} else {
echo "Listado";
$result=mysql_query("select * from browsers where UserAgent = '".$HTTP_USER_AGENT."'",$link);
while($row = mysql_fetch_array($result)) {
echo "Tu UserAgent fue registrado con la siguiente IP: ".$row['IP']."<br>";
}
}
?>
Ejemplo práctico en http://id.ziew.info.
No se si ya se ha hablado de esto anteriormente, a mi se me ocurrió de repente, aunque supongo que a mucha gente también...
PD: Para evitar estas inyecciones usen htmlspecialchars.
Tambien lo puedes hacer por refferer y por ip.
Por $_SERVER['HTTP_REFERER'] ya vi un fallo en PHP-Nuke 6.5 pero... ¿Por IP? ¿Podrías explicar cómo?
Hay personas que utilizan $_SERVER['HTTP_X_FORWARDED_FOR'] en vez del Remote Address porque el forwarded se utiliza si una persona usa un proxy que no es anonimo manda un header diciendo de donde proviene originalmente. Y ese header puedes falsificarlo al igual que un refferer.
No todos lo usan pero algunas personas si.