ver son señala servidor registros registro que origen los expone dominio dirección configurar aaaa url encoding sql-injection bots

son - URL extraña que contiene ''A=0 o'' 0=A en los registros del servidor web



se señala un registro a aaaa cname o mx a su servidor de origen que expone su dirección ip de origen (2)

Es un robot que prueba las vulnerabilidades de inyección SQL cerrando una consulta con apóstrofe y luego configurando una variable. También hay inyecciones similares que tratan con comandos de shell y / o recorridos de ruta de archivo. Se desconoce si se trata de un "buen bot" o de un mal bot, pero si la inyección funciona, tiene problemas más grandes con los que lidiar. Existe un 99% de probabilidad de que su sitio no genere estos enlaces de estilo y no hay nada que pueda hacer para evitar que elaboren esas URL a menos que bloquee la (s) solicitud (es) con una cadena de expresiones regulares simple o un WAF más complejo como ModSecurity.

El bloqueo basado en el agente de usuario no es un ángulo efectivo. Debe buscar la heurística de solicitud y el bloqueo en función de eso. Algunos ejemplos de cosas para buscar en la url / request / POST / referrer, como utf-8 y caracteres hexadecimales:

  • apostrofes dobles
  • Períodos dobles, especialmente seguidos de una barra oblicua en varias codificaciones.
  • palabras como "script", "etc" o "passwd"
  • rutas como dev/null utilizadas con salida de shell de tubería / eco
  • % 00 caracteres de estilo de byte nulo utilizados para iniciar un nuevo comando
  • http en la url más de una vez (a menos que su sitio lo use)
  • cualquier cosa relacionada con cgi (a menos que su sitio lo use)
  • Rutas "empresariales" al azar para cosas como ColdFusion, Tomcat, etc.

Si no está utilizando un WAF, aquí hay un acuerdo de expresiones regulares que debe capturar muchos de ellos dentro de una URL. Lo usamos en aplicaciones PHP, por lo que es posible que deba modificar algunos aspectos / aspectos dependiendo de dónde lo esté utilizando. Tenga en cuenta que esto tiene .cgi , wordpress y wp-admin junto con un montón de otras cosas en la expresión regular, elimínelas si es necesario.

$invalid = "(/(/))"; // lets not look for quotes. [good]bots use them constantly. looking for () since technically parenthesis arent valid $period = "(//002e|%2e|%252e|%c0%2e|/.)"; $slash = "(//2215|%2f|%252f|%5c|%255c|%c0%2f|%c0%af|//|///)"; // http://security.stackexchange.com/questions/48879/why-does-directory-traversal-attack-c0af-work $routes = "(etc|dev|irj)" . $slash . "(passwds?|group|null|portal)|allow_url_include|auto_prepend_file|route_*=http"; $filetypes = $period . "+(sql|db|sqlite|log|ini|cgi|bak|rc|apk|pkg|deb|rpm|exe|msi|bak|old|cache|lock|autoload|gitignore|ht(access|passwds?)|cpanel_config|history|zip|bz2|tar|(t)?gz)"; $cgis = "cgi(-|_){0,1}(bin(-sdb)?|mod|sys)?"; $phps = "(changelog|version|license|command|xmlrpc|admin-ajax|wsdl|tmp|shell|stats|echo|(my)?sql|sample|modx|load-config|cron|wp-(up|tmp|sitemaps|sitemap(s)?|signup|settings|" . $period . "?config(uration|-sample|bak)?))" . $period . "php"; $doors = "(" . $cgis . $slash . "(common" . $period . "(cgi|php))|manager" . $slash . "html|stssys" . $period . "htm|((mysql|phpmy|db|my)admin|pma|sqlitemanager|sqlite|websql)" . $slash . "|(jmx|web)-console|bitrix|invoker|muieblackcat|w00tw00t|websql|xampp|cfide|wordpress|wp-admin|hnap1|tmunblock|soapcaller|zabbix|elfinder)"; $sqls = "((un)?hex/(|name_const/(|char/(|a=0)"; $nulls = "(%00|%2500)"; $truth = "(.{1,4})=/1"; // catch OR always-true (1=1) clauses via sql inject - not used atm, its too broad and may capture search=chowder (ch=ch) for example $regex = "/$invalid|$period{1,2}$slash|$routes|$filetypes|$phps|$doors|$sqls|$nulls/i";

Su uso, al menos con PHP, es bastante sencillo con preg_match_all() . Aquí hay un ejemplo de cómo puede usarlo: https://gist.github.com/dhaupin/605b35ca64ca0d061f05c4cf423521ab

ADVERTENCIA: tenga cuidado si establece esto en autoban (es decir, en el filtro fail2ban). MS / Bing DumbBots (y otros) a menudo arruinan las URL ingresando cosas como puntos triples extraños de las siguientes URL truncadas, o tratando de llegar a un tel: link como un URi. No se por que Esto es lo que quiero decir: un enlace con el texto www.example.com/link-too-long...truncated.html puede apuntar a una url correcta, pero Bing puede intentar acceder a ella "como se ve" en lugar de seguir la href , resultando en un golpe WAF debido a puntos dobles.

Durante el último fin de semana, algunos de mis sitios registraron errores que implican un uso incorrecto de nuestras URL:

...news.php?lang=EN&id=23''A=0

o

...news.php?lang=EN&id=23''0=A

en lugar de

...news.php?lang=EN&id=23

Encontré una sola página originalmente que mencionó esto ( https://forums.adobe.com/thread/1973913 ) donde especularon que la cadena de consulta adicional proviene de GoogleBot o un error de codificación.

Recientemente cambié mis sitios para usar PDO en lugar de mysql_* . Tal vez este cambio causó los errores? Cualquier consejo sería útil.

Además, todas las solicitudes provienen del mismo agente de usuario que se muestra a continuación.

Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-PT; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)

Esto me llevó a encontrar los siguientes subprocesos: pt-BR y el parámetro Extraño en la URL. ¿Qué están intentando?


ya que esta es una versión muy antigua de FireFox, la bloqueé en mi archivo htaccess -

RewriteCond %{HTTP_USER_AGENT} Firefox/3/.5/.2 [NC] RewriteRule .* err404.php [R,L]