Precio de Bitcoin Precio de Bitcoin
Ctrl+D Precio de Bitcoin
ads
Casa > XLM > Info

Atacado de nuevo ¿Cómo robó el contrato inteligente VETH $ 900,000?

Author:

Time:

Prólogo

El 1 de julio de 2020, el contrato de VETH fue pirateado. Después de recibir la inteligencia, el equipo de seguridad de SlowMist realizó un análisis exhaustivo del ataque. El siguiente es un análisis técnico detallado del ataque.

Detalles del ataque

La transacción de ataque es la siguiente 0xdd1120a90ed4112b634266d6a244b93ca86785317bc75f0e170ab0cd97c65224

A través de la descripción general de la transacción, podemos ver que el atacante usó 0.9 ETH para intercambiar por VETH en Uniswap, y luego usó VETH para operar en el contrato de Vether, y finalmente robó una gran cantidad de VETH.

Ahora use el navegador de contratos OKO para analizar los detalles específicos del ataque (la siguiente figura solo muestra una parte)

Al analizar los detalles específicos de la transacción, se puede encontrar que: el atacante primero creó un contrato 0x47Ed415006C6F8052Fff05fe983f31D6D24B8fDB  a través de este contrato para llamar a la función  changeExcluded(unknown37217349)  y la función  transferFrom  en el contrato de Vether.

La plataforma de música NFT Melos Studio implementó con éxito el sistema de caja ciega y completó la primera venta: el 9 de febrero, la plataforma social de música Web3.0 Melos abrió el escenario de aplicación de los puntos de la plataforma Wave por primera vez. Los usuarios de Melos pueden usar los puntos de Wave para participar en la caja ciega de música NFT Las ventas de la caja ciega de música NFT suministrada se agotaron en 5 minutos.

Los puntos de onda son los únicos "puntos de incentivo" en la plataforma Melos, todos los cuales son generados por las acciones de los usuarios en la plataforma Melos (como crear NFT de música en Melos Studio, vender NFT de música hechos por ellos mismos en el centro comercial oficial de NFT, etc. .). Los puntos Wave tienen varios escenarios de aplicación en Melos. Según el libro blanco del proyecto, los usuarios pueden convertir puntos Wave en Melos NFT para extraer tokens de plataforma, intercambiar cupones, accesorios de juegos, boletos para eventos y otros artículos, recibir lanzamientos aéreos o financiar músicos en la plataforma, participar en la votación de la comunidad o la construcción del sitio, etc.

Según los informes, Melos Studio es una plataforma de colaboración descentralizada de metaverso + música NFT Web3, que permite a cualquier persona crear obras musicales a través de sus herramientas y guardar el contenido generado como NFT y ponerlo en circulación. [2022/2/9 9:41:17]

A continuación, analice el código específico de estas dos funciones:

Se puede ver que en la función  transferFrom , se realiza un juicio si en  mapAddress_Excluded[msg.sender]  primero. La lógica específica es que cuando mapAddress_Excluded[msg.sender] es falso, la autorización del El contrato del atacante se verificará Cuota y luego llamará a la función _transfer para transferir. Y esta lógica obviamente no funciona, el contrato del atacante no tiene ninguna cuota de autorización. Por lo tanto, mapAddress_Excluded[msg.sender] solo puede ser verdadero y luego llamar directamente a la función _transfer para transferir.

A continuación, analice cómo establecer mapAddress_Excluded[msg.sender] en verdadero:

Puede averiguarlo consultando el contrato:

Cuando se inicializa el contrato, solo address(this) y mapAddress_Excluded de burnAddress se establecen en verdadero, por lo que es seguro que hay otras lógicas que pueden establecer mapAddress_Excluded. Al analizar el contrato de  Vether, se puede encontrar que la función changeExcluded puede darse cuenta de la configuración de mapAddress_Excluded.

Al analizar la función changeExcluded se puede encontrar que su visibilidad es externa, por lo que el contrato del atacante puede llamar directamente a la función changeExcluded, en este momento el mapAddress_Excluded del contrato del atacante es falso, por lo que entrará en la lógica de if.

A continuación, analice el código en la lógica if en detalle:

Después de realizar la lógica if, primero debe pagar la tarifa de manejo, específicamente la línea 3 en el bloque de código anterior, entonces, ¿de dónde proviene la tarifa de manejo? La respuesta son los 0,9 ETH que el atacante transfirió inicialmente al contrato.

Como se puede ver en la figura, 0,9 ETH se convierte en unos 138 VETH.

Al calcular mapEra_Emission/16 en el código, podemos obtener la tarifa de transacción que el atacante debe pagar: leemos  mapEra_Emission en el contrato y sabemos que mapEra_Emission es 2048.

En este momento, la tarifa de manejo obtenida al calcular mapEra_Emission/16 es 2048/16 = 128 VETH, y el atacante intercambió alrededor de 138 VETH es suficiente para pagar la tarifa de manejo, por lo que el contrato del atacante se puede convertir para establecer mapAddress_Excluded en verdadero.

Cree un contrato de ataque y convierta 0.9 ETH en aproximadamente 138 VETH a través de Uniswap (aquí, el cambio de moneda es para el pago posterior de las tarifas de manejo)

Llame a la función changeExcluded en el contrato de Vether y use los 138 VETH intercambiados previamente en Uniswap para pagar la tarifa de manejo de 128 VETH, y luego establezca mapAddress_Excluded en verdadero

Llame a la función  transferFrom , use mapAddress_Excluded para que sea verdadero y realice directamente la operación de transferencia

Toma el dinero y vete

0xfa2700e67065bc364136b5e7f57112083cb2a0cd

0x75572098dc462f976127f59f8c97dfa291f81d8b

Soluciones sugeridas

Este ataque utiliza principalmente la visibilidad de la función changeExcluded en el contrato de Vether como externa y no tiene restricciones de permisos, los usuarios pueden hacer llamadas externas directamente para crear las condiciones necesarias para el ataque. Por lo tanto, el permiso o la visibilidad de la función changeExcluded debe restringirse para evitar que cualquier usuario llame directamente a la función changeExcluded externamente.

Tags:

XLM
Los ingresos de algunos usuarios de productos Ethereum DeFi superan el 100% ¿Se acerca el riesgo?

A diferencia de Bitcoin, que se ha estancado en los bajos $ 9,000, las finanzas descentralizadas (DeFi) basadas en Ethereum han crecido exponencialmente en las últimas semanas.Camila Russo.

Solo se necesitan 5,82 años para que se destruya todo el HT.La moneda deflacionaria más fuerte es como "Currency Moutai": cuanto más larga, más valiosa es

De acuerdo con los datos sobre la cantidad de años necesarios para la destrucción de moneda en la plataforma BitUniverse Exchange, la cantidad de años necesaria para que se destruya HT es solo 5.

COMP aumentó 17 veces en diez días ¿Puede DeFi realmente lograr ganancias tan grandes?

Desde una perspectiva de rentabilidad, el estado actual de la inclusión financiera centralizada puede ser el futuro de DeFi.Como todos sabemos, sin importar la plataforma o los usuarios.

Atacado de nuevo ¿Cómo robó el contrato inteligente VETH $ 900,000?

Prólogo El 1 de julio de 2020, el contrato de VETH fue pirateado. Después de recibir la inteligencia.

Golden Observation | Inventario de mitad de año 2020: la aventura de bailar con el cisne negro

A mediados de 2020, sabemos que la historia es tan mágica.Para la industria de las cadenas de bloques y las criptomonedas, ha sido un año de altibajos.Bailando con el cisne negro, en esta revisión de mitad de año.

Ideas brillantes: cómo Bitcoin puede resolver los problemas de suministro de petróleo en Venezuela

Bitcoin resuelve muchos problemas, desde una política monetaria mal manejada hasta servir como una reserva de riqueza completamente nueva.Pero.

Pesado | El GAFI publica directrices importantes para monedas estables y activos virtuales

Justo ahora (en la tarde del 30 de junio), el Grupo de Trabajo de Acción Financiera sobre el Lavado de Dinero (en adelante.

ads