Información Importante Sobre el Contenido
Estas accediendo al contenido antiguo del blog. Este artículo "Filtrar inyecciones SQL y XSS con Mod_Rewrite en Apache" es de dominio público y no será mantenido a futuro. Cualquier error o problema acerca del contenido por favor contactate conmigo desde la sección contacto.
Revisando un servidor me encontré con la siguientes reglas para el módulo ModRewrite de apache, que nos ayudan a filtrar las URLs potencialmente maliciosas. Este codigo nos va a ayudar a proteger el servidor de las aplicaciones que tengan fallas de seguridad.
RewriteEngine On ########## Begin - Rewrite rules to block out some common exploits # # Block out any script trying to set a mosConfig value through the URL RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR] # Block out any script trying to base64_encode crap to send via URL RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR] # Block out any script that includes a <script> tag in URL RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR] # Block out any script trying to set a PHP GLOBALS variable via URL RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] # Block out any script trying to modify a _REQUEST variable via URL RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) # Send all blocked request to homepage with 403 Forbidden error! RewriteRule ^(.*)$ index.php [F,L] ######### End - Rewrite rules to block out some common exploits
Nos protegerá de ataques XSS y SQL Injection. Este script podría afectar el funcionamiento de algunas aplicaciones.
Información Importante Sobre el Contenido
Estas accediendo al contenido antiguo del blog. Este artículo "Filtrar inyecciones SQL y XSS con Mod_Rewrite en Apache" es de dominio público y no será mantenido a futuro. Cualquier error o problema acerca del contenido por favor contactate conmigo desde la sección contacto.
diciembre 15, 2010 a las 3:17 pm
Genial
creo que habia visto un par de esas reglas anteriormente, igual las guardare por si las moscas 😀
saludos
julio 24, 2011 a las 1:47 am
Y se que sabes que se puede bypasser pero estaba aburrido y lo hice igual:
# Block out any script trying to set a mosConfig value through the URL
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
#Bypass: $a=’base6′.’4_encode’; echo $$a(1234);
# Block out any script that includes a tag in URL
RewriteCond %{QUERY_STRING} (\|%3E) [NC,OR]
#Bypass:
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
#Bypass: $GLOBALS=((3))
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
#Bypass: $_REQUEST =2
no se que hace mosconfig y ni ganas de fijarme pero de ultima se usa eval
julio 24, 2011 a las 1:50 am
Se rompió http://pastebin.com/DHTfS57B
julio 24, 2011 a las 1:03 pm
seth: Ben tip! Bueno, al menos es un filtro mas, se puede bypasear pero por te da mas trabajo y no cualquiera lo haria 😉