Citarwtf con tu spanglish xDjajaja y eso que hize un esfuerzo para tratar de explicar todo con la menor cantidad de palabras posibles jajaja.
La solución y futuro parche o versión desatendida XD la estamos viendo con ing_amc ya que varias personas me han pedido una solución, mientras tanto para evitar la sql inyección en seo4smf-redirect.php hize estas modificaciones:
Código (php) [Seleccionar]
// Pasamos a integer para evitar procesar datos no solicitados
$topic = (int)$_GET['t'];
$board = (int)$_GET['b'];
$user = (int)$_GET['u'];
$tpage = (int)$_GET['p'];
// Filtramos solo carácteres válidos por SMF con expresiones regulares
$other = preg_replace('|[^a-z0-9_=,;/\-.]|i', '', $_GET['o']);
$action = preg_replace('|[^a-z0-9_=,;/\-.]|i', '', $_GET['a']);
$param = preg_replace('|[^a-z0-9_=,;/\-.]|i', '', $_GET['param']);
Deben haber otras páginas en que puedas inyectar código sql debo verlo todavía, falta muchisimo por revisar pero entre los dos lo terminamos luego.
Alguien me preguntó por privado si estaba bién poner (int) directamente en la query del mysql y la verdad es mejor no hacerlo ya que antes de eso hay un if que verifica si hay contenido para procesar y si alguien ingresa letras o algo que no sea numérico lo pasará como válido y procesará la query incompleta causando un error de sintaxis asi que por eso es mas seguro ponerlo en la declaración de arriba para anticiparse. La expresión regular hace posible que puedas ingresar solo números, letras y los simbolos "_=,;/-." para que puedan ser procesados los links sin tener problemas de tener que procesar algo inesperado en alguna parte del script.
Con esto ya no necesitamos modificar las queryes de la consulta a la base de datos pero de todas formas lo haremos mañana para continuar con el parche, también queda ver todas las demás fallas pero eso lo hacemos de volada
Hasta mañana.