Tendencias del momento
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Así que descubrí que es aún más elegante. Observé que la transacción de frontrunning (por parte de los atacantes) llama a `initialize` y los protocolos también llaman _exitosamente_ a `initialize` después (por lo que piensan que todo es normal). Pero espera, ¿cómo es esto siquiera posible? Tuve que mirar muy a fondo los cambios en los slots de almacenamiento y adivina qué encontré: _reiniciaron_ el valor del slot de almacenamiento `_initialized` al final de la transacción de frontrunning (después de que intercambiaron al contrato de implementación malicioso). Esto significa que el almacenamiento del proxy ahora parece como si nunca hubiera sido inicializado.
El slot de almacenamiento relevante a observar es `keccak256(abi.encode(uint256(keccak256(" - 1)) & ~bytes32(uint256(0xff))` = `0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00`
Esto es maldad de otro nivel.



10 jul, 22:13
Se vuelve aún más sofisticado: la forma en que Etherscan fue engañado para mostrar el contrato de implementación incorrecto se basa en establecer 2 slots de proxy diferentes en la misma transacción de frontrunning. Así que Etherscan utiliza una cierta heurística que incorpora diferentes slots de almacenamiento para recuperar el contrato de implementación.
Hay un antiguo proxy de OpenZeppelin que utilizó el siguiente slot: `keccak256("org.zeppelinos.proxy.implementation")` = `0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3`
Ahora también tenemos el slot estándar EIP-1967 `bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)` = `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`
Entonces, lo que sucedió es que el antiguo slot de proxy de OpenZeppelin se escribió con la dirección de implementación benigna _y_ el slot estándar EIP-1967 también se escribió con la dirección de implementación maliciosa. Dado que Etherscan consulta primero el antiguo slot de proxy, recuperó primero el que parecía benigno y, por lo tanto, lo mostró.

21,55K
Parte superior
Clasificación
Favoritos