feat: add arno challenge

This commit is contained in:
Abel Stuker 2024-11-25 22:26:24 +01:00
parent 0c40415d3d
commit 2050daf730
5 changed files with 71 additions and 0 deletions

6
.gitignore vendored Normal file
View File

@ -0,0 +1,6 @@
**/node_modules
.DS_Store
*/drafts
**/.venv
**/.vscode
*.tgz

9
arno/README.md Normal file
View File

@ -0,0 +1,9 @@
# les filLeS du Bord de mer
## Text
On a serene evening by the water, Éloise gazed at the waves lapping gently against the shore. The moonlight shimmered on the surface, revealing fleeting glimpses of what lay beneath. Her friends, the girls of the seaside, whispered tales of hidden treasures, but Éloise knew that sometimes the most significant secrets were found in the smallest details—like the way the light flickered at the edge of the tide, just enough to catch a curious eye.
As she traced her fingers in the sand, she thought of the laughter and memories shared, realizing that their legacy might not be in grand gestures, but rather in the subtle moments—the last bits of joy that lingered, waiting to be uncovered by those who knew where to look.
## Files
[lesfilLeSduBorddemer.wav](lesfilLeSduBorddemer.wav)
## How to Deploy
n/a

33
arno/SOLUTION.md Normal file
View File

@ -0,0 +1,33 @@
## Difficulty
Easy
## Category
Steganography
## How To Solve
From the filename it should be clear that LSB is a hint, referring to the Least Significant Bits from which you have to extract the flag. Using Python:
```python
import wave
wav = wave.open("lesfilLeSduBorddemer.wav", mode='rb')
frames = wav.getnframes()
bytes = bytearray(list(wav.readframes(frames)))
# Replace each frame_byte with only the value of the LSB
for i in range(len(bytes)):
bytes[i] = bytes[i] & 1 # bitmask with 00000001
# Byte array to string
result = ""
for i in range(0, len(bytes), 8):
byte_chunk = bytes[i:i+8]
int_value = int("".join(map(str, byte_chunk)), 2)
char_value = chr(int_value)
result += char_value
# Remove the trailing '#' characters
decoded = result.split("#")[0]
print(decoded) # This will show the flag
wav.close()
```
## Flag
`IGCTF{Th1s_m3ss4ge_1s_h1dd3n_1n_4ud10}`

Binary file not shown.

23
arno/writeup.py Normal file
View File

@ -0,0 +1,23 @@
import wave
wav = wave.open("lesfilLeSduBorddemer.wav", mode='rb')
frames = wav.getnframes()
bytes = bytearray(list(wav.readframes(frames)))
# Replace each frame_byte with only the value of the LSB
for i in range(len(bytes)):
bytes[i] = bytes[i] & 1 # bitmask with 00000001
# Byte array to string
result = ""
for i in range(0, len(bytes), 8):
byte_chunk = bytes[i:i+8]
int_value = int("".join(map(str, byte_chunk)), 2)
char_value = chr(int_value)
result += char_value
# Remove the trailing '#' characters
decoded = result.split("##")[0]
print(decoded)
wav.close()