En nuestra plataforma de CTFs de Web3 seguimos añadiendo funcionalidades que nos enseñen a nosotros a la hora de llevarlas a cabo y que ayuden a aprender al resto de la comunidad. En esta ocasión, hemos incorporado NFTs a la plataforma de level_up!. La idea es que el jugador que va realizando retos y va consiguiendo puntos pueda reclamar sus NFT por el nivel que va adquiriendo.
Figura 1: Level_Up! Consigue tus NFTs mientras cuando supera retos Web3
La idea surgió hace meses. No es la primera vez que trabajamos con NFT, ya que en el taller de Navaja Negra del año 2022 ya hicimos algunos retos, los cuales tuvieron bastante éxito y gustaron. En esta ocasión, la idea es que cualquier que descargue level_up! desde el Github oficial, pueda después configurar sus NFT y las imágenes asociadas a éstos. Nosotros solo damos una propuesta de la dinámica y el juego de NFTs que se pueden conseguir con los puntos que el jugador va consiguiendo.
Figura 2: Level_Up! en GitHub
Añadiendo NFTs a level_up!
Desde el punto de vista técnico, hemos añadido un contrato que se encarga de gestionar los NFT de cada usuario. El contrato es básico y hemos elegido el estándar ERC-1155 debido a que tenemos una colección, en principio de 5 NFTs, y los usuarios pueden ir ‘minteando’ los diferentes NFT. Es decir, el contrato se encarga de gestionar la colección completa y de proporcionar a cada usuario que cumpla con unos requisitos un NFT u otro. Si eres un amante de los NFTS, te animamos que mires el Market de NFTs de Telefónica que hay algunos muy especiales.
Figura 3: Tienda de NFTs en Telefónica Marketplace
- Nivel 0: Newbie. Se consigue con 0 puntos. Sólo por crear el jugador ya puedes reclamarlo.
- Nivel 1: Rookie. Se consigue con 500 puntos. Necesitas superar algunos retos antes de poder solicitarlo.
- Nivel 2: Hero. Se consigue con 1000 puntos.
- Nivel 3: Super Hero. Se consigue con 1500 puntos.
- Nivel 4: Master. Se consigue con 2500 puntos.
Figura 4: Score "0"
Cuando nos registramos como jugador tenemos 0 puntos, ya que no hemos resuelto ningún reto, pero podemos reclamar el primer NFT. Al reclamarlo, se ‘mintea’ el NFT para el usuario y se podrá visualizar en la misma vista de jugador o, incluso, cargarlo en tu wallet de Metamask. Cuando se reclama el NFT se produce una petición de firma de un mensaje. Esto es realmente interesante desde el punto de vista de la seguridad.
Figura 5: Firma con Metamask
Cada vez que se solicita un NFT la plataforma validará si tienes derecho a un NFT por los puntos que tengas. Además, se enviará un mensaje aleatorio para que el usuario lo firme, de forma que se pueda verificar que el usuario es quién debe ser y que el NFT es ‘minteado’ para él. Es un proceso de seguridad necesario en el mundo Web3 para verificar que alguien es quién está detrás de cierta acción. Hay que tener cuidado en no caer en la posibilidad de un replay de la firma, como ya vimos en el reto Replay Me.
Una vez reclamado y firmado el mensaje se valida la transacción y se lleva a cabo. El usuario dispone de su NFT visible en la vista de jugador cada vez que accede. Ya con este NFT se puede visualizar el nivel que tiene el usuario en la plataforma.
Figura 6: NFT "Newbie"
Además, como se comentaba, el jugador puede meter su NTF a su Wallet y llevarlo consigo. Hay que recordar que level_up! está pensado principalmente para entornos privados y de testeo, bajo el control nuestro siempre, pero podrían llevarse en un Wallet sin problema. Cuando uno va consiguiendo superar retos puede ir reclamando NFTs. El botón de Reclamar NFT se habilitará solo cuando pueda reclamar al menos uno por los puntos acumulados que se tengan.
En la siguiente imagen, se puede ver cómo el jugador tiene más de 1.000 puntos y tiene 3 NFTs minteados y visibles en la plataforma. Están indicando el nivel del jugador en la plataforma y la superación de retos por valor de esos NFT.
Figura 7: Puntos y NFTs conseguidos.
En el mes de julio volveremos con un reto nuevo en level_up! y con la liberación de un writeup. Seguimos pensando en mejorar cosas y añadir funcionalidades a la plataforma. Esta nueva versión de level_up! ya fue liberada, por lo que esperemos que sigas aprendiendo con nosotros de la Web3 y los retos de seguridad que esta propone.
Figura 8: 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
- Latch Web3: Un pestillo de seguridad para SmartContracts
- Level_Up! Consigue tus NFTs mientras cuando supera retos Web3
Saludos,
Autor: Pablo González Pérez (@pablogonzalezpe), 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 |
No hay comentarios:
Publicar un comentario