diff --git a/IoT/Lets_All_Love_UART/README.md b/IoT/Lets_All_Love_UART/README.md index 211a356..50e8c3c 100755 --- a/IoT/Lets_All_Love_UART/README.md +++ b/IoT/Lets_All_Love_UART/README.md @@ -1,17 +1,46 @@ -# Let's All Love UART — Solution +# Let's All Love UART -**Difficulty:** Easy | **Category:** IoT | **Flag:** `ESPILON{LAIN_TrUsT_U4RT}` +| Field | Value | +|-------|-------| +| Category | IoT | +| Difficulty | Easy | +| Points | 500 | +| Author | Eun0us | +| CTF | Espilon 2026 | -## Overview +--- -The challenge emulates a split UART interface on a Lain router: +## Description -- **TX (port 1111)**: Read only — device output -- **RX (port 2222)**: Write only — send commands +This challenge emulates a UART interface on a Lain router. +Open both connections, interact as if it was real hardware. -## Steps +- **TX**: Read only +- **RX**: Write only -1. Open two terminals: +**Let's All Love Lain!** + +--- + +## TL;DR + +Open the TX and RX ports simultaneously. Send `flag` on the RX (write) port. +The flag is immediately printed on the TX (read) port. + +--- + +## Tools + +| Tool | Purpose | +|------|---------| +| `nc` | Split UART connection | +| Python 3 | Automated solver script | + +--- + +## Solution + +### Step 1 — Open both channels ```bash # Terminal 1 — read device output @@ -21,19 +50,27 @@ nc 1111 nc 2222 ``` -1. On the RX terminal, send the `flag` command: +> 📸 `[screenshot: two terminal windows open, TX showing the device banner]` + +### Step 2 — Request the flag + +In Terminal 2 (RX): ```text flag ``` -1. The flag prints on the TX terminal: +### Step 3 — Read the flag -```text +In Terminal 1 (TX): + +``` ESPILON{LAIN_TrUsT_U4RT} ``` -## Solver Script +> 📸 `[screenshot: TX terminal printing the flag immediately after the flag command is sent]` + +### Automated solver ```python #!/usr/bin/env python3 @@ -64,10 +101,8 @@ with socket.create_connection((HOST, RX_PORT)) as s: tx_thread.join() ``` +--- + ## Flag `ESPILON{LAIN_TrUsT_U4RT}` - -## Author - -Eun0us