Durante una prueba de penetración de aplicaciones web reciente, el equipo técnico de CertiK descubrió una vulnerabilidad grave e inesperada. Después de obtener el permiso del cliente, escribimos este descubrimiento en este artículo para compartirlo, a fin de ayudar a los desarrolladores relevantes a evitar los mismos errores en el futuro. La aplicación web de destino es un navegador de cadena de bloques, que tiene funciones como la búsqueda de información de bloques, la búsqueda del historial de transacciones y los contratos inteligentes implementados. El front-end de la aplicación está escrito en React, un marco web que está bien protegido contra ataques como XSS (cross-site scripting) e inyección de HTML. En términos de implementación, el JavaScript front-end obtiene periódicamente nuevos datos de bloque de la API RPC de blockchain. Debido a que una cadena de bloques es una aplicación simple, no hay servidores back-end "tradicionales", no requiere autenticación ni autorización, y no es necesario manejar grandes cantidades de entradas de usuarios. Entonces, en general, es difícil encontrar vulnerabilidades graves en las aplicaciones de exploración de blockchain. Sin embargo, durante las pruebas de penetración, el equipo de CertiK encontró algunas anomalías con respecto a las URL de solicitud utilizadas para obtener datos de bloques. La URL se ve así: https://cors.x.y/http://load-balancer.us-east-1.elb.amazonaws.com/blocks/270865 Si mira de cerca, puede ver que la URL completa es dada por Consiste en dos URL conectadas de ida y vuelta. La "segunda" URL se parece al nombre DNS de un balanceador de carga de AWS, entonces, ¿a qué apunta la primera? Después de visitar solo la primera URL "https://cors.x.y", ingresa a la página predeterminada de una herramienta de código abierto llamada "CORS-anywhere". El equipo técnico de CertiK descubrió que la herramienta estaba mal configurada, lo que permitía el acceso a información confidencial. El siguiente texto explica más detalladamente los antecedentes y describe los hallazgos y otras investigaciones realizadas por el equipo técnico de CertiK. Antes de comprender los resultados de la encuesta, comprendamos CORS (intercambio de recursos de origen cruzado). Si tiene experiencia en desarrollo web, debería haberse encontrado con este tipo de error innumerables veces: Baidu Apollo presenta la serie "Apollo 001" de colecciones digitales conmemorativas: Golden Finance informó que, según la cuenta pública oficial de conducción inteligente de Baidu Apollo, Baidu Apollo lanzó la primera serie "Apollo 001" en toda la red. La serie "Apollo 001" de colecciones digitales conmemorativas, con robots de automóviles de Baidu como imagen principal, cada una corresponde a un hito importante en la conducción autónoma de Baidu Apollo. Se informa que la colección digital lanzará el lanzamiento aéreo del retrato familiar de la familia de robots de automóviles a las 09:55 el 8 de julio de 2022. [2022/7/7 1:58:19] Cuando una aplicación web solicita un recurso de un dominio, protocolo o puerto diferente del servidor donde reside el recurso en sí, la aplicación web iniciará una solicitud HTTP entre dominios. Si no hay un encabezado (referencia) "access-control-allow-origin" correcto en la respuesta, el navegador bloqueará la página web que inició la solicitud de origen cruzado y leerá el contenido devuelto por la solicitud de origen cruzado. En este artículo, los mecanismos SOP (Same Origin Policy) y CORS (Cross-Origin Resource Sharing) no se discutirán con demasiada profundidad. En resumen, SOP evita que JavaScript lea respuestas en solicitudes de origen cruzado, mientras que CORS es una forma de eludir las restricciones impuestas por la política del mismo origen. ¿De dónde provienen las solicitudes de origen cruzado en los navegadores de blockchain? ¿Por qué tenemos que lidiar con eso? En este caso, el fondo del explorador blockchain mencionado anteriormente es la cadena Cosmos. En Cosmos, la forma de interactuar con los nodos es utilizar la API JSON RPC (https://cosmos.network/rpc). El nombre de host del nodo generalmente lo asigna el desarrollador o el nombre DNS del balanceador de carga de aplicaciones de AWS. Si el nombre de host del explorador de blockchain es "explorer.mychain.com", y el nombre de host de la API de RPC es "api.mychain.com". Luego, cuando el navegador "explorer.mychain.com" realiza una solicitud a "api.mychain.com", se convierte en una solicitud de origen cruzado. Si no hay un encabezado CORS correcto, el navegador evitará que el sitio web de la aplicación lea la respuesta HTTP de la API de RPC. Actualmente hay muchas formas de resolver el problema de las solicitudes de origen cruzado, y se darán explicaciones al final del artículo. Para este explorador de blockchain, el equipo técnico de CertiK descubrió que utiliza una herramienta de proxy similar llamada "CORS-anywhere" como solución para manejar los encabezados de CORS. Por lo tanto, el equipo comenzó a investigar sobre "CORS-anywhere". LBank Blue Shell lanzó BOSON a las 16:50 el 9 de abril: Según el anuncio oficial, LBank Blue Shell lanzará BOSON (Boson Protocol) a las 16:50 el 9 de abril, abrirá transacciones en USDT y abrirá recargas a las 16:00 en abril. 9. El retiro estará disponible a las 16:00 el 12 de abril. Abra la transacción de recarga BOSON al mismo tiempo que se conecta en línea para compartir 10,000 USDT. A las 16:50 del 9 de abril, LBank Blue Shell abrió la transacción de depósito BOSON para compartir 10,000 USDT. El monto de recarga neta del usuario no es inferior a 1 BOSON, y se puede obtener la recompensa de lanzamiento aéreo USDT equivalente al 1% de BOSON de acuerdo con el monto de recarga neta; la competencia comercial se clasificará de acuerdo con el volumen de operaciones de BOSON del usuario, y los 30 principales se pueden basar en la proporción del volumen comercial personal Divide USDT. Para obtener más información, haga clic en el anuncio oficial. [2021/4/9 20:02:26] CORS-anywhere es una herramienta de código abierto que brinda a los desarrolladores una forma de manejar solicitudes de origen cruzado. El repositorio del proyecto tiene más de 3 mil estrellas en Github, lo que es testimonio de su popularidad. "CORS -Anywhere es un proxy NodeJS que agrega encabezados CORS a las solicitudes enviadas por proxy". Cuando comencé a trabajar en esta herramienta, hubo una pregunta en Github (problema de Github) sobre los posibles riesgos de seguridad de CORS en cualquier lugar. Sobre este tema, el autor (Rob--W) dio su punto de vista. En resumen, su respuesta enumera 3 puntos principales: Denegación de servicio (Denial of Service) Suplantación de direcciones IP SSRF (Server Side Request Forgery) En las pruebas de penetración para aplicaciones web, lo más interesante es el último punto: la falsificación de solicitudes del lado del servidor. La falsificación de solicitud del lado del servidor (también conocida como SSRF) es una vulnerabilidad de seguridad web que un atacante puede explotar para engañar a una aplicación del lado del servidor para que realice una solicitud HTTP a un dominio arbitrario de la elección del atacante. En un ejemplo típico de SSRF, las acciones de un atacante pueden hacer que el servidor establezca una conexión consigo mismo o que establezca conexiones con otros sistemas de terceros externos o basados en servicios web dentro de la infraestructura de la organización. Si quieres saber más sobre SSRF, puedes visitar la Referencia 8. Primer lanzamiento | Bithumb lanzará un servicio de transferencia de activos encriptados con Bithumb Global: los expertos de Bithumb revelaron a Jinse Finance que Bithumb lanzará un servicio de transferencia rápida de activos en moneda encriptada entre Bithumb y Bithumb Global sin cargos por manejo. El límite diario de transferencia de activos encriptados es de 2 BTC . La noticia se dará a conocer al público esta noche. Se informa que actualmente solo se admiten transferencias de activos BTC y ETH. [2020/2/26] Maneras comunes de explotar las vulnerabilidades de SSRF para realizar escaneo de puertos y reconocimiento de red en la red interna Enviar solicitudes a las API del servidor interno para acceder a recursos confidenciales en la red interna ¿qué? El servidor en la nube de AWSEC2 tiene un punto final especial: http://169.254.169.254/latest/meta-data/ Solo se puede acceder a este punto final dentro del servidor. Este punto de enlace contiene metadatos de la instancia de AWS, como el ID de la instancia, el nombre de host, la IP pública/privada y las credenciales de la función de AWS. Al buscar en Google, Y Combinator define http://169.254.169.254 como "la función más peligrosa de EC2". Si al servidor en la nube de EC2 se le asigna un rol de IAM (Administración de identidad y acceso), las credenciales correspondientes aparecerán en los metadatos. Con las credenciales de rol, hay privilegios de rol de IAM adjuntos al servidor en la nube de EC2. Por ejemplo, el rol de IAM tiene un rol denominado "aws-elasticbeanstalk-ec2-role". Este es el rol que se crea al iniciar el entorno con el servicio de Elastic Beanstalk. Según la documentación de AWS, este rol tiene acceso completo al repositorio s3. Si puede obtener las credenciales del extremo de metadatos, puede acceder al repositorio s3 en su organización. Anuncio | Huobi Global Estreno mundial del Proyecto PAI a las 16:00 el 29 de junio: Huobi Global lanzará el servicio de depósito del Proyecto PAI (PAI) a las 16:00 el 29 de junio, hora de Singapur. A las 16:00 horas del 2 de julio se abrirán transacciones PAI/BTC, PAI/ETH en la Zona de Innovación. El servicio de retirada de PAI se abrirá a las 16:00 horas del 6 de julio. [2018/6/29] El servicio de metadatos del servidor en la nube de EC2 tiene dos versiones: IMDSv1 (Servicio de metadatos de instancia, versión 1); IMDSv2 (Servicio de metadatos de instancia, versión 1). Para IMDSv1, solo se requiere una solicitud GET para recuperar los metadatos de la instancia: Para IMDSv2, se debe crear un token de sesión que defina la duración de la sesión antes de que se puedan consultar los metadatos. Cree una sesión enviando una solicitud PUT a "http://169.254.169.254/latest/api/token". Luego, los metadatos se pueden solicitar utilizando el token devuelto por la solicitud PUT. En comparación con IMDSv1, IMDSv2 proporciona medidas de seguridad adicionales para proteger contra vulnerabilidades SSRF en aplicaciones web. En resumen, hay varias ventajas: los tokens deben obtenerse mediante solicitudes PUT, mientras que la mayoría de los ataques SSRF solo admiten métodos GET y POST. La solicitud PUT incluye un encabezado HTTP "X-aws-ec2-metadata-token-ttl-seconds". En un ataque SSRF, el atacante normalmente no puede insertar encabezados HTTP adicionales en la solicitud. Puede encontrar más información sobre las diferencias entre IMDSv1 e IMDSv2 en el blog de seguridad de AWS (Referencia 3). Como se mencionó anteriormente, CORS-anywhere se puede usar para realizar ataques SSRF y se implementa en servidores en la nube EC2, es hora de explotar esto. La tasa de votos electorales del súper nodo EOS debut dorado alcanzó el 6,49%: transmisión de datos de Golden Finance, a las 15:50 del 13 de junio, hora de Beijing, la tasa de votantes de EOS alcanzó el 6,49%. EOS Gravity Zone y EOS Canon, como dos equipos de campaña de súper nodos de China, ocuparon temporalmente el quinto y sexto lugar. Entre ellos, el número total de votos para EOS Gravity Zone fue de 9,03 millones, lo que representa el 2,96 %; el número total de votos para EOS Canon fue de 8,77 millones, lo que representa el 2,87 %. EOSflytomars, que había surgido antes, ocupó temporalmente el puesto 17, con un total de 6,3 millones de votos, lo que representa el 2,07%. Entre los 30 mejores equipos de campaña de supernodos, ocho equipos son de China. [2018/6/13] El equipo técnico de CertiK utiliza Elastic Beanstalk para lanzar un servidor en la nube EC2. Para facilitar la demostración, se supone que la URL para acceder a cors-anywhere implementada en el servidor en la nube de EC2 es http://cors.x.y: Utilización para IMDSv1: Es muy simple y directo para IMDSv1. El equipo técnico de CertiK envía una solicitud GET al servidor que implementa CORS en cualquier lugar para obtener las credenciales de AWS adjuntas con el rol de IAM. Explotación contra IMDSv2: estas credenciales se pueden usar para obtener acceso completo (lectura y escritura) a los repositorios de S3 y los registros de Cloudwatch. Debido a la popularidad de "CORS-where" y el uso intensivo de la nube de AWS. ¿Cuántos servidores en la nube EC2 sufren vulnerabilidades SSRF causadas por "CORS-wherewhere"? La página predeterminada de CORS en cualquier lugar genera automáticamente el contenido de la página para que los posibles piratas informáticos puedan encontrarlos más fácilmente, incluida esta primera línea: "Esta API permite solicitudes de origen cruzado en cualquier lugar". Entonces, el equipo técnico de CertiK usó dos motores de búsqueda, Shodan.io y Zoomeye, para encontrar dispositivos conectados a Internet y buscó instancias explotables. La página predeterminada de CORS-anywhere "Shodan" devuelve 6 resultados y "Zoomeye" devuelve 447 resultados. Para eliminar los falsos positivos y verificar aún más los resultados del motor de búsqueda, el equipo técnico de CertiK escribió scripts para confirmar que el host está en línea y puede acceder al servicio de metadatos con la ayuda de "CORS-anywhere". Finalmente, se encontró que un total de 100 servidores en la nube AWS EC2 en Internet serán atacados por SSRF debido a la implementación de CORS-anywhere. Pero debido a que no estaba autorizado, no siguió intentando recuperar las credenciales del rol de AWS. Durante la prueba de penetración de ZoomEye, el equipo técnico de CertiK explotó la vulnerabilidad SSRF en CORS, en cualquier lugar, utilizada por el navegador de la cadena de bloques para obtener las credenciales de la función EC2 y, por lo tanto, obtuvo acceso completo (lectura y escritura) al repositorio S3 de la empresa y el permiso de CloudWatch Logs. Pero no se realizó más penetración en la nube de AWS, ya que está fuera del alcance de las pruebas de penetración
Tags:
Recientemente, la ciudad de Suzhou, provincia de Jiangsu, probó el modo "blockchain + notarización" para registrar todo el proceso de aplicación de la ley administrativa.
1. Chen Chun: Es necesario otorgar gran importancia a la investigación de la tecnología de supervisión de la cadena de alianzasJinse Finance informó que el 5 de junio.
Durante los últimos tres meses, Ethereum ha tenido una tendencia alcista. Desde que cayó a $100 en marzo, ETH, la segunda criptomoneda más grande por capitalización de mercado, ha ido en aumento, cotizando a $244.
Durante una prueba de penetración de aplicaciones web reciente, el equipo técnico de CertiK descubrió una vulnerabilidad grave e inesperada. Después de obtener el permiso del cliente.
El 10 de junio de 2020, hora de Beijing, el navegador de cadena de bloques OKLink completó la actualización del producto y agregó etiquetas de dirección al navegador BTC.
La declaración conjunta señaló: Bitmainl Tech posee el 100% del capital de Beijing Bit. El 28 de octubre de 2019.
MXC Matcha, que siempre ha estado centrado en el usuario, esta vez se enfoca en "contratos boutique". La nueva versión del sistema de contratos no solo se centra en la actualización integral de funciones, rendimiento.