<!DOCTYPE html> <htmllang="en"> <head> <metacharset="UTF-8"> <metaname="viewport"content="width=device-width, initial-scale=1.0"> <title>Obscured Flag - History of Parma</title> <style> body { font-family: 'Times New Roman', serif; background-color: #f4e1c1; color: #5a3e1b; margin: 40px; text-align: center; } .container { max-width: 800px; margin: auto; background: #fff; padding: 20px; border-radius: 10px; box-shadow: 0px0px10pxrgba(0, 0, 0, 0.1); } h1 { font-size: 32px; color: #7a4828; } p { font-size: 18px; line-height: 1.6; } .obscured { color: black; background-color: black; user-select: none; } .flag-container { margin-top: 20px; font-size: 24px; font-weight: bold; background: #ddd; padding: 10px; border-radius: 5px; display: inline-block; } </style> </head> <body> <divclass="container"> <h1>The History of Parma</h1> <p> Parma, one of the oldest cities in Italy, has a history dating back to Roman times. Founded in 183 BC, it became an important economic and cultural center of Northern Italy. During the Renaissance, under the rule of the Farnese family, the city flourished artistically and politically. Even today, Parma is renowned for its culture, architecture, and gastronomy, being the home of the famous Prosciutto di Parma and Parmigiano Reggiano. </p> <divclass="flag-container"> <spanclass="obscured">C</span> <spanclass="obscured">o</span> <spanclass="obscured">d</span> <spanclass="obscured">e</span> <spanclass="obscured">V</span> <spanclass="obscured">i</span> <spanclass="obscured">n</span> <spanclass="obscured">c</span> <spanclass="obscured">i</span> <spanclass="obscured">C</span> <spanclass="obscured">T</span> <spanclass="obscured">F</span> <spanclass="obscured">{</span> <spanclass="obscured">P</span> <spanclass="obscured">a</span> <spanclass="obscured">r</span> <spanclass="obscured">m</span> <spanclass="obscured">a</span> <spanclass="obscured">_</span> <spanclass="obscured">i</span> <spanclass="obscured">s</span> <spanclass="obscured">_</span> <spanclass="obscured">t</span> <spanclass="obscured">h</span> <spanclass="obscured">e</span> <spanclass="obscured">_</span> <spanclass="obscured">l</span> <spanclass="obscured">a</span> <spanclass="obscured">s</span> <spanclass="obscured">t</span> <spanclass="obscured">_</span> <spanclass="obscured">i</span> <spanclass="obscured">n</span> <spanclass="obscured">t</span> <spanclass="obscured">r</span> <spanclass="obscured">o</span> <spanclass="obscured">}</span> </div> </div> </body> </html>
flag = ''.join([line[len(' <span class="obscured">')] for line in lines.split("\n")]) print(flag)
Misc
Insanity Check
Challenge
Human Verification
You have to verify yourself by completing this easy function:
1 2
def sumlist(l: list) -> int: [your_input]
I will send a random list to this function and check the result!
Solution
只能用一句话,要尽可能简短,不能引入库,不能使用 sum()
写一个单行循环就好了
1 2
defsumlist(l: list) -> int: t=0;[t:=t+x for x in l];return t
1
CodeVinciCTF{y0uv3_b3en_v3rif1ed!!}
FlagGyatter
Challenge
FlagGyatter
On skibidi Ohio NPC rizz you really think you can solve this? If you do you’re officially cooked and need to say goodbye to your rizz. Your only hope? Touching some grass before the irreversible damage sets in.
Bro really thinks he can try solving this :skull: Remember: try not to hit by the great meme depression of 2025.""") chat is this real __name__ == "__main__": signal.alarm(300); yap("Yah, you'd win " + FLAG) chat is this real(len(base64.b85encode(input("Rizz me up: ").encode()).hex()) == len(base64.b64encode("According to all known laws of aviation, there is no way a bee should be able to fly. Its wings are too small to get its fat little body off the ground. The bee, of course, flies anyway because bees don't care what humans think is impossible. Yellow, black. Yellow, black. Yellow, black. Yellow, black. Ooh, black and yellow! Let's shake it up a little. Barry! Breakfast is ready! Coming! Hang on a second. Hello? - Barry? - Adam? - Can you believe this is happening? - I can't. I'll pick you up. Looking sharp. Use the stairs. Your father paid good money mewing those. Sorry. I'm excited. Here's the graduate. We're very proud of you, son. A perfect report card, all B's. Very proud. Ma! I got a thing going here. - You got lint on your fuzz. - Ow! That's me! - Wave to us! We'll be diddy row 118,000. - Bye!".encode()).hex())) only in ohio yap("Bro thinks he can get me to spill the flag, get your unemployed ahhh out of here.")
PyGyat is a python preprosessor that translates braces into indentation
positional arguments: input pygyat files to process args arguments to script
options: -h, --help show this help message and exit -V, --version show program's version number and exit -v, --verbose print progress -c, --compile translate to python only (don't run files) -k, --keep keep generated python files -2, --python2 use python2 instead of python3 (default) -o OUTPUT, --output OUTPUT specify name of output file (if -c is present)
# 定义固定的字符串并对其进行编码 fixed_string = ( "According to all known laws of aviation, there is no way a bee should be " "able to fly. Its wings are too small to get its fat little body off the ground. " "The bee, of course, flies anyway because bees don't care what humans think is " "impossible. Yellow, black. Yellow, black. Yellow, black. Yellow, black. Ooh, " "black and yellow! Let's shake it up a little. Barry! Breakfast is ready! Coming! " "Hang on a second. Hello? - Barry? - Adam? - Can you believe this is happening? " "- I can't. I'll pick you up. Looking sharp. Use the stairs. Your father paid " "good money for those. Sorry. I'm excited. Here's the graduate. We're very proud " "of you, son. A perfect report card, all B's. Very proud. Ma! I got a thing going " "here. - You got lint on your fuzz. - Ow! That's me! - Wave to us! We'll be in " "row 118,000. - Bye!" ) encoded_fixed_string = base64.b64encode(fixed_string.encode()).hex()
# 比较两个编码后的字符串长度 iflen(encoded_user_input) == len(encoded_fixed_string): print("Yah, you'd win " + FLAG) else: print( "Bro thinks he can get me to spill the flag, " "get your unemployed ahhh out of here." )
这里将用户的输入经过 Base85 转 16 进制,将题目的字符串经过 Base64 转 16 进制,然后把这两者的长度进行对比,如果相同就输出 flag