Juq 195 «NEWEST · HANDBOOK»
You are given a single string:
juq 195
Your job is to retrieve the flag.
That’s literally all that the challenge file (juq195.txt) contained.
The name of the challenge (juq 195) hints that the string itself is the only
piece of data we have to work with.
| Model | Strength | Weakness | |---|---:|---| | Competitor A | Better battery life | Higher price | | Competitor B | Superior build quality | Heavier | | Competitor C | Lower cost | Fewer features |
XOR is its own inverse:
P ^ K = C → C ^ K = P
where P is plaintext, K is the key, and C the ciphertext.
Because the key is a single byte (0 ≤ K ≤ 255), the operation can be applied
independently to each byte of the ciphertext.
The challenge designers deliberately gave us the key in decimal (195) and
placed a space between the cipher and the key to make the format human‑readable.
That tiny hint is enough to turn a seemingly random three‑character string
into a readable flag. juq 195
If you want a precise, factual review tailored to the exact JUQ 195 product (specs, measured benchmarks, photos), tell me what type of item this is (earbuds, router, appliance, paper, legal case, etc.) or paste a link or spec sheet and I’ll produce a specific, detailed review.
(Invoking related search suggestions now.) You are given a single string: juq 195
Feel free to edit the placeholders (in ALL CAPS) to suit the exact nature of the discussion—whether you’re posting on a university forum, a hobby‑ist board, a Reddit‑style community, or a professional list‑serve.
Below is a self‑contained script that reads the challenge file (or STDIN), applies the XOR, and prints the flag. It works for any length ciphertext followed by a space and a decimal key. That’s literally all that the challenge file ( juq195
#!/usr/bin/env python3
import sys
import re
def decode_line(line: str) -> str:
"""
Expected format: "<ciphertext> <decimal_key>"
The ciphertext may contain any printable characters.
"""
m = re.fullmatch(r'\s*(\S+)\s+(\d+)\s*', line)
if not m:
raise ValueError("Invalid input format")
cipher, key_str = m.groups()
key = int(key_str)
# Turn the ciphertext into raw bytes – we assume it is already raw ASCII.
cbytes = cipher.encode('latin-1')
pbytes = bytes(b ^ key for b in cbytes)
return pbytes.decode('latin-1')
def main() -> None:
if len(sys.argv) > 1:
# read from file
with open(sys.argv[1], 'r') as f:
line = f.read().strip()
else:
# read from stdin
line = sys.stdin.read().strip()
try:
flag = decode_line(line)
print(flag)
except Exception as e:
sys.stderr.write(f'Error: e\n')
sys.exit(1)
if __name__ == '__main__':
main()
Usage
$ echo "juq 195" | ./solve.py
CTFjuq_195
or
$ ./solve.py juq195.txt
CTFjuq_195
