Skip to content

Commit 4b7b81b

Browse files
committedDec 5, 2020
hitcon writeups for telescope, 11011001 and revenge
1 parent 43d5b9a commit 4b7b81b

File tree

3 files changed

+11
-2
lines changed

3 files changed

+11
-2
lines changed
 

‎2020/HITCON/11011001/README.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
# 11011001
22

3-
Read [solve.py](./solve.py)
3+
See [solve.py](./solve.py). The binary implements constraints on 20 20-bit integers. Represent the constraints for 20x20 bit variables in z3 and SAT solve.
4+
5+

‎2020/HITCON/revenge/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# revenge
22

3-
Read [solve.py](./solve.py)
3+
We obtain the stdout and stderr of the pwntools script, so we can use the assembler to leak the flag through errors. Use ".include" on the flag file to include the flag as assembly code, which will error when assembled. See [solve.py](./solve.py)

‎2020/HITCON/telescope/README.md

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Lost the solve script but here is writeup. The vulnerability is that the size of the output protobuf after being parsed from array then serialized to string is not checked. This means we need a message that is longer after being parsed then serialized. It turns out backwards compatability with packed fields does this, so we can manually fuzz the message until we get a perfect off-by-one overflow into the next chunk after the message is serialized again. This message overflows with one 0x71 byte:
2+
3+
```
4+
0a6ac182858a94a8d020c182858a94a8d020c182858a94a8d020c182858a94a8d020c182858a94a8d020c182858a94a8d020c182858a94a8d020c182858a94a8d020c182858a94a8d020c182858a94a8d020c182858a94a8d020c182858a94a8d020c182858a94a8d020717110effdb6f50d
5+
```
6+
7+
Using this, we can easily obtain overlapping chunks, get leaks, overwrite tcache fd, overwrite freehook, win.

0 commit comments

Comments
 (0)
Please sign in to comment.