jueves, agosto 31, 2023
miércoles, agosto 30, 2023
Level_Up!: El WriteUp del reto "ReLottery" y un nuevo reto de agosto llamado “Pay Me!”
Además, hacia el final del artículo os hablaremos del nuevo reto llamado Pay Me! Un reto de dificultad 1, es decir, de nivel introductorio en el que el usuario deberá interpretar el contrato para entender lo que hay que hacer para conseguir la flag. En este mes de agosto, que estamos acabando, ya viene bien un reto ‘suave’ en temas de dificultad y proporcionar a los que empiezan otro reto con el que aprender nuevos conceptos y nuevas formas de interactuar con los SmartContract.
Leyendo el reto y el contrato podemos encontrar que se simula un entorno de lotería, dónde el usuario o player tiene que adquirir un boleto y puede pedir el reembolso de este si no quiere participar en el sorteo.
Para poder pedir un reingreso o reembolso de lo que hemos depositado en el contrato, primero deberemos pagar y adquirir uno o varios boletos. Por esta razón, tenemos la función ‘pagarBoleto’. Se nos pide abonar al menos 1000000 wei. Con esta acción ya conseguiremos al menos un boleto y podremos pedir reembolso. La función ‘anularBoleto’ permite recuperar los fondos pagados en la previa compra de un boleto. Esta es la función ‘anularBoleto’ y su código.
Lo que se puede ver es que se comprueba que el usuario que pide anular el boleto tiene fondos pagados, es decir, ha comprado previamente un boleto. La segunda instrucción de la función realiza el pago al que solicita el reembolso. Si el solicitante de reembolso es un wallet se le enviará sus fondos, el segundo require se resolvería correctamente y se actualizarían los fondos del usuario en el contrato.
Justo aquí está el problema, se actualizan los fondos del usuario en última instancia. ¿Qué ocurre si cuando devuelven los fondos, no se da el ‘ok’ y se vuelve a solicitar de forma recurrente el reembolso? Aquí tenemos la vulnerabilidad de Re-Entrancy.
Si el usuario que pide el reembolso es un contrato, se puede definir cómo actúa el contrato en el momento que recibe fondos: funciones receive y fallback. A continuación, se muestra un ejemplo de contrato que se puede desplegar para interactuar con el contrato ReLottery.
- El contrato attack a través de su función attack() compra un boleto y luego pide anular el boleto.
- El contrato ReLottery inicia la devolución de fondos al contrato attack.
- El contrato attack, a través de la función fallback, comprueba si el balance del contrato ReLottery es 0. Si no es 0, volvemos a solicitar devolución de fondos.
- Esto se realiza de forma iterativa hasta que el balance de ReLottery es 0. En este instante se empieza a cerrar las llamadas recursivas a fallback y dichas transacciones se finalizan correctamente.
En el despliegue se indica la dirección del contrato ReLottery y se le pasa al constructor del contrato attack. Ahora, se invoca la función attack() y se debe indicar en value la cantidad de wei que queremos que el contrato pague.
Se consigue obtener el balance total del contrato ReLottery más lo que el propio contrato pagó. Lo importante es que el balance total del contrato ReLottery queda a 0, por lo que ahora se puede solicitar la flag y validarla para sumar los puntos.
Nuevo reto: Pay Me!
En este nuevo reto de dificultar 1 sobre 5, tenemos que interactuar con el contrato con el objetivo de entender cómo funcionan los pagos en un SmartContract. El reto consistirá en conocer cómo funcionan las funciones payable y cómo interactuar con este tipo de escenarios.
El reto es el nivel 14, esto quiere decir que es el reto número 15 que tenemos en Level_UP! Es un reto básico, para todos aquellos que comienzan con los SmartContracts y recuerda mucho al reto Questions o Interact, debido a la poca complejidad que se le presupone al reto. Animaos a jugar y aprender con Level_UP! disponible en su Github: https://github.com/Telefonica/level_up/.
Figura 11: Libro dedicado a "Bitcoin: La tecnología Blockchain y su investigación" de Yaiza Rubio y Félix Brezo |
Más artículos de Web3, Blockchain & SmartContracts
- Blockchain & SmartContracts: Una serie para aprender
- BlockChain & SmartContrats: Primer SmartContract con Solidity
- Blockchain & SmartContracts: Cómo probar y desplegar un SmartContract en Ethereum
- WWW, Web 1.0, Web 2.0, Web 3.0, Web3 y ¿Web 4.0?
- Metaverso, multiverso y las tierras digitales en que vivimos en forma de avatar
- Los Fan Tokens vs. las Criptomonedas y los NFTs: Level 101
- Tokenomics: Las criptomonedas y las "Proof-of-work": Level 101
- Los NFTs y el registro mundial de los dueños de activos digitales en el Metaverso
- BitCoin: Blockchain y su investigación
- BlockChain & SmartContrats: El Internet descentralizado y el almacenamiento off-chain en IPFS
- Reentrancy Attack: Cómo te roban criptomonedas por un bug en tu SmartContract
- BlockChain & SmartContract: Bugs que pueden dejar tu SmartContrat "fuera de juego"
- Blockchain & SmartContracts: Patrones y buenas prácticas de seguridad
- Blockchain & SmartContracts: Herramientas de Auditoría de Seguridad de SmartContracts
- BlockChain & SmartContracts: Ataque de phishing a tx.origin y robo de criptomonedas
- BlockChain & SmartContracts: Ataques de Ice Phishing
- Blockchain & SmartContracts: Herramientas de análisis dinámico
- ZIION: Una distribución Linux para auditar SmartContracts (& BlockChain)
- Dominios Web3 en Etherenum Name Service y la trazabilizad de las transacciones Blockchain
- BlockChain & SmartContracts: Actualizar SmartContracts como los grandes protocolos
- Jumping level up (from) web2 (to) web3: Vulnerabilities & SCAMs - SmartContracts
- 20 millones (Euros) en Tokens de Optimism perdidos por no saber cómo funcionan los Wallets Multifirma
- BlockChain & SmartContracts: Cómo crear una DApp de la Web3 con Python (y Flask)
- Pentesting SmartContracts: From Web2.0 to Web3
- Tokenomics 101: Una explicación con gráficos
- Read-Only Reentrancy Attack: $220k robados y otros +$100M en riesgo
- Como utilizar ChatGPT para encontrar bugs en SmartContracts
- BlockChain & SmartContracts: Nuevas áreas profesionales relacionadas con la Web3
- Las voces de Satoshi: Un canal para estar al día en Web3, Blockchain, Criptos & IA
- BlockChain & SmartContracts: Nuevas áreas profesionales relacionadas con la Web3
- Bit2Me Academy: Una plataforma online para aprender de Web3, BitCoin, Tokenomics o Ethereum con cursos gratuitos
- Level_Up!: Una plataforma para aprender a hacer pentesting en Web3 (SmartContracts & BlockChain ) a través de retos hacking
- Level_Up!: Web3 Security WarGames para los amantes del Challenge Based Learning
- Level_up!: WriteUp del Reto Questions para comenzar el pentesting en la Web3
- Level_Up! Deny_to_me Challenge activado en la plataforma Level_up! de retos hacking Web3
- Level_Up!: WriteUp del Ownership Challenge para hacer pentesting en Web3
- Nuevo reto Hacking Web3 de Level_UP! -> Forensic Ouch!
- Level_Up!: WriteUp del reto "Safeguarding" para hacer pentesting en Web3
- Reto Web3 en Level_Up! "Replay_me": La importancia de una correcta validación de firmas
- Level_Up! Configuración paso a paso de la plataforma de pentesting en Web3
- Level_Up! Consigue tus NFTs mientras cuando supera retos Web3
- Telefónica validará nodos de la cadena BlockChain de Celo
- Latch Web3: Un pestillo de seguridad para SmartContract
- Level_Up!: El WriteUp del reto "Origin" y un nuevo reto "Guess my number"
- CrazyToolBox: Una herramienta multifunción de utilidades Web3
- Level_Up!: El WriteUp del reto "ReLottery" y un nuevo reto de agosto llamado “Pay Me!”
Autor: Pablo González Pérez, escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advanced Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root", “Pentesting con Powershell” y de "Empire: Hacking Avanzado en el Red Team", Microsoft MVP en Seguridad y Security Researcher en el equipo de "Ideas Locas" de la unidad CDCO de Telefónica. Para consultas puedes usar el Buzón Público para contactar con Pablo González
Contactar con Pablo González |
Publicado por Chema Alonso a las 6:01 a. m. 0 comentarios
Etiquetas: 2FA, bitcoin, Bitcoins, Blockchain, Hacking, Identidad, Latch, nft, NFTs, pentest, pentesting, Reto Hacking, SmartContracts, token, tokenomics, tokens, Web3
martes, agosto 29, 2023
Charla con Carlos Azaustre, Microsoft MVP Developer Technologies
- Imaginando el Futuro con Pau García-Milà
- Navegando la Nube: Desde el Futuro hasta hoy con Azure OpenAI y GitHub Copilot X con Ignacio Melero
- Web3 & CyberSec. PoCs & Hacks Just for Fun (and Harden) de Chema Alonso y Josep Albors
- Hablando de GenerativeAI de Iker Jiménez y Chema Alonso
- Presente y Futuro de la IA Generativa con Eduardo Matallanas
- Paco Estrada entrevista a Carlos Azaustre
Publicado por Chema Alonso a las 6:01 a. m. 0 comentarios
Etiquetas: charlas, conferencias, Entrevistas, Microsoft, MVP, programación
lunes, agosto 28, 2023
CrazyToolBox: Una herramienta multifunción de utilidades Web3
En esta ocasión, hemos querido hacer una pequeña caja de herramientas con utilidades varias para Web3 que hemos estado utilizado en nuestro día a día, según vamos aprendiendo nuevas cosas de este apasionante mundo. Estas son:
- Conversor de unidades
- Codificador de selector de funciones
- Decodificador de selector de funciones
- Decodificador de entrada de transacciones
- Calculadora SHA-3 (Keccak256)
- Validador EIP55
- Validación de firmas
CrazyToolBox se trata de una herramienta con GUI, escrita en Python y apoyada principalmente en la librería web3.py y también PySide para la parte gráfica. Puedes descargarla desde su repositorio de GitHub y realizar la instalación en muy pocos pasos con pipenv:
- pipenv install
- pipenv shell
- python main.py
A continuación se detalla cada una de las secciones que podéis encontrar en la herramienta:
- Conversor de unidades: Permite convertir entre wei, gwei y ether, además de un modo avanzado donde se pueden convertir entre más de 20 tipos de medidas. Admite hasta 30 decimales de coma flotante.
- Codificador de selector de funciones: Permite generar el selector de una función. Para ello hay que indicar el nombre de la función y los tipos de parámetros que tiene en una sencilla interfaz. También es posible pasar directamente la firma de la función, por ejemplo, la función transfer con dos parámetros, un tipo address y otro uint256: transfer(address,uint256).
- Decodificador de selector de funciones: Esta sección hace justo lo contrario a la anterior, es decir, dado un selector de una función intenta obtener la firma de la función. Para ello se hace uso de la API de 4byte.directory.
- Decodificador de entrada de transacciones: En este caso se permite decodificar la entrada de una transacción a la firma de función y los parámetros asignados sin necesidad del ABI del contrato. De nuevo, para obtener la firma de la función se hace uso del servicio de 4byte.directory.
- Calculadora SHA-3 (Keccak256): Esta funcionalidad permite calcular el hash keccak256 del texto introducido en el input.
- Validador EIP55: El validador EIP55 permite comprobar si una dirección cumple con este EIP y, en el caso de que no lo cumpla, calcular el EIP55 correspondiente a la dirección de entrada indicada.
- Validación de firmas: En este caso, dado un texto que se ha firmado, o el hash del texto, más la firma, devuelve la dirección del propietario de dicha firma.
Figura 6: Libro dedicado a "Bitcoin: La tecnología Blockchain y su investigación" de Yaiza Rubio y Félix Brezo
|
- Blockchain & SmartContracts: Una serie para aprender
- BlockChain & SmartContrats: Primer SmartContract con Solidity
- Blockchain & SmartContracts: Cómo probar y desplegar un SmartContract en Ethereum
- WWW, Web 1.0, Web 2.0, Web 3.0, Web3 y ¿Web 4.0?
- Metaverso, multiverso y las tierras digitales en que vivimos en forma de avatar
- Los Fan Tokens vs. las Criptomonedas y los NFTs: Level 101
- Tokenomics: Las criptomonedas y las "Proof-of-work": Level 101
- Los NFTs y el registro mundial de los dueños de activos digitales en el Metaverso
- BitCoin: Blockchain y su investigación
- BlockChain & SmartContrats: El Internet descentralizado y el almacenamiento off-chain en IPFS
- Reentrancy Attack: Cómo te roban criptomonedas por un bug en tu SmartContract
- BlockChain & SmartContract: Bugs que pueden dejar tu SmartContrat "fuera de juego"
- Blockchain & SmartContracts: Patrones y buenas prácticas de seguridad
- Blockchain & SmartContracts: Herramientas de Auditoría de Seguridad de SmartContracts
- BlockChain & SmartContracts: Ataque de phishing a tx.origin y robo de criptomonedas
- BlockChain & SmartContracts: Ataques de Ice Phishing
- Blockchain & SmartContracts: Herramientas de análisis dinámico
- ZIION: Una distribución Linux para auditar SmartContracts (& BlockChain)
- Dominios Web3 en Etherenum Name Service y la trazabilizad de las transacciones Blockchain
- BlockChain & SmartContracts: Actualizar SmartContracts como los grandes protocolos
- Jumping level up (from) web2 (to) web3: Vulnerabilities & SCAMs - SmartContracts
- 20 millones (Euros) en Tokens de Optimism perdidos por no saber cómo funcionan los Wallets Multifirma
- BlockChain & SmartContracts: Cómo crear una DApp de la Web3 con Python (y Flask)
- Pentesting SmartContracts: From Web2.0 to Web3
- Tokenomics 101: Una explicación con gráficos
- Read-Only Reentrancy Attack: $220k robados y otros +$100M en riesgo
- Como utilizar ChatGPT para encontrar bugs en SmartContracts
- BlockChain & SmartContracts: Nuevas áreas profesionales relacionadas con la Web3
- Las voces de Satoshi: Un canal para estar al día en Web3, Blockchain, Criptos & IA
- BlockChain & SmartContracts: Nuevas áreas profesionales relacionadas con la Web3
- Bit2Me Academy: Una plataforma online para aprender de Web3, BitCoin, Tokenomics o Ethereum con cursos gratuitos
- Level_Up!: Una plataforma para aprender a hacer pentesting en Web3 (SmartContracts & BlockChain ) a través de retos hacking
- Level_Up!: Web3 Security WarGames para los amantes del Challenge Based Learning
- Level_up!: WriteUp del Reto Questions para comenzar el pentesting en la Web3
- Level_Up! Deny_to_me Challenge activado en la plataforma Level_up! de retos hacking Web3
- Level_Up!: WriteUp del Ownership Challenge para hacer pentesting en Web3
- Nuevo reto Hacking Web3 de Level_UP! -> Forensic Ouch!
- Level_Up!: WriteUp del reto "Safeguarding" para hacer pentesting en Web3
- Reto Web3 en Level_Up! "Replay_me": La importancia de una correcta validación de firmas
- Level_Up! Configuración paso a paso de la plataforma de pentesting en Web3
- Level_Up! Consigue tus NFTs mientras cuando supera retos Web3
- Telefónica validará nodos de la cadena BlockChain de Celo
- Latch Web3: Un pestillo de seguridad para SmartContract
- Level_Up!: El WriteUp del reto "Origin" y un nuevo reto "Guess my number"
- DeFi (Decentralized Finance): Qué es Staking y por qué se generan Tokens.
- Lens: La solución Web3 que compite en el sector de redes sociales
- ETF de Bitcoin: Qué son y por qué son importantes para la industria
Publicado por Chema Alonso a las 6:01 a. m. 0 comentarios
Etiquetas: Blockchain, Dapp, fan Tokens, Herramientas, SmartContracts, tokenomics, tokens, Web3
domingo, agosto 27, 2023
"El Hacker del Gorro" y otros retos de la Identidad en la era de los LLM para evitar el Prompt Injection
@chema_alonso ¿Cuál es el plan de ChatGPT, Google Bard o Meta Llama para acabar con la humanidad? #ai #ia #chatgpt #inteligenciaartificial #googlebard #llama #meta #generativeai ♬ WAR GAMES - Intermede Music
Publicado por Chema Alonso a las 11:44 a. m. 1 comentarios
Etiquetas: AI, Artificial Intelligence, ChatGPT, Google, IA, Identidad, Inteligencia Artificial, LLM, Prompt Injection
sábado, agosto 26, 2023
Cómo aprender hacking: El camino en espiral
Publicado por Chema Alonso a las 11:26 a. m. 0 comentarios
Etiquetas: formación, hackers, Hacking, IA, programación, redes, Universidad, Web3
Entrada destacada
Tu Latch "Hack Your Innovation Contest": Haz un PoC & Hack por 1.000 €
El pasado Telefónica Innovation Day 2024 lanzamos oficialmente el " Tu Latch Hack Your Innovation Contest " en el que repartimos ...
Entradas populares
-
Ayer publiqué un post que tiene ver con las opciones de privacidad de Facebook asociadas a los correos electrónicos , y mañana sacaré la se...
-
La app de mensajería instantánea Telegram tiene muchos fans por el atributo de seguridad que ha querido potenciar desde el principio, per...
-
Hoy lunes os voy a traer una curiosidad de esas que se me pasa por la cabeza cuando menos lo busco. Y en este caso tiene que ver con Star Wa...
-
Conseguir la contraseña de Facebook de una cuenta es una de las peticiones más usuales que se suele recibir de la gente que busca solucion...
-
Ya hace tiempo que dediqué un artículo a los problemas que Facebook estaba teniendo con la indexación en Google . Uno de los lectores (grac...
-
Que el mundo del Tokenomics , las Criptomonedas , y los Tokens para desarrollar plataformas digitales Web3 con arquitecturas DApps basada...
-
Quizás recuerdes, ya hace algunos años, una PoC que hicimos sobre cómo proteger WordPress en modo paranoico donde, además de proteger el l...
-
Ya llevamos unos días en NOVIEMBRE encarando el final del año, y hoy aprovecho para dejaros la lista de formaciones y cursos online que pu...
-
Mi paso por la Ekoparty 2024 fue corto pero intenso para mí. Viajé el lunes por la noche, llegué el martes para preparar la charla, me fui ...
-
Si no lo sabes, en WhatsApp se pueden enviar mensajes de vídeo en las últimas versiones. Si no lo sabías, ya has aprendido algo. Y no te pr...