Skip to content

Commit 8333f9b

Browse files
committed
i'm broken inside
1 parent 5318171 commit 8333f9b

13 files changed

+1583
-0
lines changed
+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
define fn
2+
si
3+
x/20i $pc - 12
4+
end
5+
6+
set history remove-duplicates 99999
7+
set history save on
8+
set arch i386
9+
target remote localhost:1234
+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Biooosless
2+
3+
Tl;dr read from floppy in 32bit protected mode with no BIOS, using PMIO. Your shellcode gets pasted into seabios.
4+
5+
# Intended solution
6+
7+
Write a floppy disk driver that does DMA. Output the flag using VGA MMIO
8+
9+
# My solution
10+
11+
1. Floppy disk
12+
13+
- Too stupid and lazy to learn about floppy disk, know remote hardware is always QEMU -> hack seabios to log all in/out instructions, copy paste them into shellcode.
14+
- In/out not working -> add usleep() everywhere, shellcode magically starts working
15+
- Final `in` instructions seems to return flag bytes -> Ignore DMA and use completely idiotic solution that works
16+
17+
2. Outputting the flag
18+
19+
- Too stupid and lazy to read docs and figure out VGA -> copy paste QEMU ACPI shutdown.
20+
- Use as timing side channel for time-based blind boolean exfil. Binary search on flag chars
21+
- Side channel is slow and unreliable -> babysit the brute force and guess words manually to speed it up
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/bash
2+
set -e
3+
./make.sh && printf '%s\n%s\n' $(printf '%x\n' $(wc -c poc.bin | cut -d' ' -f 1 )) $(cat poc.bin | base64 -w0) | timeout 11 stdbuf -o0 -i0 -e0 nc biooosless.challenges.ooo 6543
Binary file not shown.

0 commit comments

Comments
 (0)