Intercambio de Ethereum Intercambio de Ethereum
Ctrl+D Intercambio de Ethereum
ads
Casa > Binance APP > 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.

AirDAO lanza un puente de cadena cruzada entre la red de Capa 1 Ambrosius y Ethereum: Jinse Finance informó que AirDAO, la organización autónoma descentralizada que administra la red de Capa 1 Ambrosius, ha lanzado un puente de cadena cruzada con Ethereum para su ecosistema de cadena de bloques, el puente ETH se expande El kit de herramientas multicadena de AirDAO, que permite a los usuarios transferir criptomonedas desde la cadena de bloques de Ethereum a través de cadenas a la red Ambrosus de AirDAO. [2022/11/3 12:14:14]

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

Viceprimer Ministro de Ucrania: Recibió $ 54 millones en donaciones de cifrado para la compra de suministros militares: Golden Finance informó que el Viceprimer Ministro de Ucrania y Ministro de Transformación Digital de Ucrania, Mikhailo Fedorov (Mykhailo Fedorov), declaró en las redes sociales, Ucrania El gobierno de Ucrania ha planteado $ 54 millones en donaciones de criptomonedas, que se han utilizado para comprar equipo militar, trajes blindados, medicamentos e incluso vehículos.

En marzo, el presidente de Ucrania, Volodymyr Zelenskyy, firmó un proyecto de ley de activos virtuales que legaliza las criptomonedas en el país, que ha recibido millones de dólares en donaciones de criptomonedas en su guerra con Rusia por asistencia militar y humanitaria. (Forkast) [2022/8/19 12:35:40]

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 opciones cifradas SignalPlus anunció la finalización de la financiación de la Serie A, dirigida por HashKey: el 10 de agosto, SignalPlus Ltd. anunció la finalización de la financiación de la Serie A, dirigida por HashKey. Además, SignalPlus dijo que sus primeros inversores y otros inversores, incluidos (y que actúan como asesores) GBV Capital, Incuba Alpha, Chiron Partners, Paradigm Co., SNZ Holding, Baboon.vc y Stratified Capital, han recaudado más de $ 12 millones en total.

Se informa que SignalPlus Ltd. se enfoca en construir un conjunto completo de plataformas de opciones encriptadas. [2022/8/10 12:16:10]

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

El número de monedas estables basadas en el euro ha aumentado un 1683 % desde 2020, pero ha disminuido un 14,17 % desde enero de este año: Golden Financial News, la emisión de monedas estables ancladas en el euro ha aumentado desde un valor de 31,9 millones de dólares estadounidenses el 3 de enero , 2020 a $ 569 millones de hoy, un aumento del 1683%. Desde noviembre de 2021, el número de monedas estables en euros ha aumentado un 85,34 %, pero desde enero de 2022 hasta el presente, el número de monedas estables en euros ha disminuido un 14,17 % en los últimos siete meses. [2022/8/2 2:52:17]

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.

La prima de kimchi de Bitcoin una vez se disparó a un máximo de 2022 y luego cayó a 3,39%: noticias del 11 de mayo, según datos de CryptoQuant, la prima de kimchi de Bitcoin de Corea del Sur cayó a alrededor de 3,39% el miércoles y alcanzó el nivel más alto desde diciembre del año pasado el martes Nivel 6.28 % Según los informes, el fuerte aumento en la prima de kimchi puede estar relacionado con "Kakao Bank está considerando cooperar con un cambio de moneda digital", que se rumorea que es Upbit. Nota: "Kimchi premium" se refiere a la gran diferencia de precios entre los tokens en los intercambios coreanos y el promedio mundial.

Según noticias anteriores, Kakao Bank, el banco en línea más grande de Corea del Sur, está considerando cooperar con un cambio de moneda digital, y el director ejecutivo de la compañía, Yun Ho-young, confirmó el plan. Indicó que dado que las criptomonedas son el principal activo de los clientes, están evaluando cómo brindar servicios o activos virtuales en forma de negocios de manera ventajosa. (Forkast)[2022/5/11 3:06:15]

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:

Binance APP
Un innovador agresivo | Solo estando en la tendencia podemos liderar mejor la tendencia: ZG.COM

En los últimos años, con el desarrollo de la ciencia y la tecnología y la mejora general de la conciencia de los usuarios sociales.

Este artículo resume los principales avances de DeFi en junio

Antes del 312, el valor de los activos bloqueados en DeFi alcanzó un máximo de alrededor de 1250 millones de dólares EE. UU. Después de tres meses de recuperación.

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.

A las 8:00 p.m., 丨 Yibang abrirá un intercambio justo después de su cotización, ¿lo cual es bueno para Bitcoin?

La primera columna de retransmisiones en directo del mercado 20:00 Kim Últimas noticias, contratos puntuales.

¿Cómo soluciona Bancor V2 el problema del deslizamiento de DEX?

Bancor fue el primero en introducir el modelo AMM en la práctica, pero fue Uniswap quien realmente lo inició. Después de eso, AMM floreció en casi todas partes. Después de un período de silencio.

El comercio en la cadena elimina el estigma China y los mercados extranjeros han utilizado blockchain para abrir múltiples canales comerciales

Cuando un país levanta un gran garrote e intenta desvincular a sus aliados de China. El poder de las organizaciones empresariales está utilizando blockchain para fortalecer las transacciones comerciales.

ads