Al ver al jefe clave defendiendo sus derechos y Reabastecimiento, perdiendo algunos activos M, lamentó que Defi sea realmente demasiado frágil. Después de mirar a mi alrededor, no parecía tener muy claro cómo atacaban los hackers, así que investigué un poco y lo compartí con vosotros: El protagonista de la historia es el ResupplyPair, el usuario puede pedir prestado y pedir prestado apostando activos, y el modificador isSolvent en el contrato se encarga de verificar si el usuario es elegible para prestar los activos solicitados, la lógica del código específico es la siguiente: Puedes ver el cálculo del LTV en la línea 282, si tenemos una manera de establecer _exchangeRate a 0, ¿no sería siempre verdadera la verificación? Continúa leyendo el código: Puede ver que la variable para este valor proviene de la llamada al oráculo getPrices, y es el denominador, en otras palabras, necesitamos hacer que el precio de la garantía sea extremadamente grande. Al leer el código del oráculo, puede ver que getPrices es solo una capa de reenvío, que en realidad llama a la interfaz convetToAssets del activo apostado (es decir, la bóveda). Continúa leyendo el código: Se puede ver que este resultado se compone de operaciones matemáticas muy complejas, aquí el hacker es amplificando la molécula, más total_assets, para completar el ataque, fíjate en la implementación de la función _total_assets se puede encontrar: Este valor está relacionado con el borrowed_token que tiene el contrato del controlador de esta bóveda, que es crvUSD. El análisis es realmente claro aquí, ResupplyPair se creó con una bóveda vacía, y el pirata informático transfirió una cierta cantidad de borrowed_token al contrato del controlador de la bóveda, y finalmente hizo que el _exchangeRate volviera a cero, por lo que el valor de sus activos comprometidos se amplificó infinitamente, y prestó hasta 10 millones de reUSD a un costo muy pequeño. Operaciones de ataque: Dirección del contrato de ResupplyPair: Dirección del contrato de controlador de tesorería: Dirección del Contrato de Tesorería: Dirección del contrato de Oracle:
Mostrar original
68.34 k
307
El contenido al que estás accediendo se ofrece por terceros. A menos que se indique lo contrario, OKX no es autor de la información y no reclama ningún derecho de autor sobre los materiales. El contenido solo se proporciona con fines informativos y no representa las opiniones de OKX. No pretende ser un respaldo de ningún tipo y no debe ser considerado como un consejo de inversión o una solicitud para comprar o vender activos digitales. En la medida en que la IA generativa se utiliza para proporcionar resúmenes u otra información, dicho contenido generado por IA puede ser inexacto o incoherente. Lee el artículo enlazado para más detalles e información. OKX no es responsable del contenido alojado en sitios de terceros. Los holdings de activos digitales, incluidos stablecoins y NFT, suponen un alto nivel de riesgo y pueden fluctuar mucho. Debes considerar cuidadosamente si el trading o holding de activos digitales es adecuado para ti según tu situación financiera.