0ops{bR@v0_y0u_rEAl1Y_90oD_a7_CRyPTO}
SJTU CTF 2025 iphunters: http://141.148.189.179:40529/collect.php?id=w01DypvsfExe5kum
11010100 10000001 10001101 01111010 10001111 11110001 11100010 01100011 10001101 01111001 10110110 11101100 11010011 10011000 10111110 10110001 01010110 11010000 01111000 10101001 11111100 00111111 10011000 11000100 00110110 00111010 11001010 10001101 10000111 01101101 11000110 00100110
D4
d4818d7a8ff1e2638d79b6ecd398beb156d078a9fc3f98c4363aca8d876dc626
D4818D7A8FF1E2638D79B6ECD398BEB156D078A9FC3F98C4363ACA8D876DC626
ezCrypt
使用gzip解压,得到:
0ops, looks like we have a really long number. Can you figure out what this is?
010101000110100101101101011001010010000001110100011011110010000001100011011010000110111101101111011100110110010100100001001000000101010001101000011001010111001001100101001000000110000101110010011001010010000001110100011101110110111100100000011000100110110001101111011000110110101101110011001000000110111101100110001000000110001101101001011100000110100001100101011100100010110000100000011101000110100001100101001000000110011001101100011000010110011100100000011010010111001100100000011010010110111000100000011011110110111001100101001000000110111101100110001000000111010001101000011001010110110100101110001000000100001101101000011011110110111101110011011001010010000001110111011010010111001101100101011011000111100100100001000010100000101001010010001100110101011001111001010010010100100001001110001101010110001001101110010100010110011101100100011011010101100101100111010011010100100001100100001101000110010101011000011100110111100001010000010101110011010100110100011000110110110000111001011110100110010101010101010000100101010101011000001100100100101001010100010110000011000101000010010001100110001001000101010011100100100001010001011011000011100101010001011001000101011100110100011110000100110101010011010001100011100101001001010100110100001001010111010010100011001101101111011001110110010101001000010110100111100001100011010110000101101001101000011001000100001100110100011001110101010001101101010011100110110001100100011011100110101101100111010101010011001001001010011010010110010101010011010001010110011101010010001100110101011001111001010110100101100001001001011001110110010001101101010110010110011101011001010101110100100101100111011000110011001101101100011101010110010001000011010000100011001001011001010100110100001001101110011001000101100001011010011011010100100101000111010010100110100001100011011011100011010001100111010101000011001001101000011011100100100101000110010110010110011101100011010001110011010101101000010010010100011101001110011011000101100101101101011011000011001001100011010110000100100101100111011000100100011101001010011011110100100101000111010110100110100101100101011011100100100101100111011001000101100001011010011010000101101001111001010000100111101001011001011011010101010101100111010110100011001101010110011110010100100101000111010010100110111001100100010110000100101001101100010010010100011100111001001101010101100101101110010000100011010001001001010100010110111101100111010101110110110100110101011100110110001000110011010010010110011101100100011011010110001101100111011001000110110101011001011001110110001001101001010000100111011101011001011011100111000001101010011000100110111001000010011011100100100101000111010101100111100101011001001100100101011001111001010110100110111001001010011010000101101000110010001101010110111001100100011011010100101001101000010010010100011101001010011110100100100101000110010110100100010001100001010101000101100101100111011000100110111001000110011110000101101001011000010010100110110101011010011011100100101001101101010011000100001101000010011101010101101001111001010000100011010101100011011011010011010101101101010110100111100101000010011101010110001101001000010000100110100101011010010110000100011000110010010110010101100001010001011001110101101000110010010010010110011101011010011011010100101000110110011000110110100101000010011110100110000101000111010001100110100001100010010000110100001001000110010101010011000101000010011011010100100101000110010110010110011101011010010110000100101001110101011000110101001101000010011110010110001001101101010101100011010101100100011011100100101001101100010011000110100101000010010011110110001100110010011001000111100101011010010100110100001001101110011001000101011100110101011011100100110001000011010000100111001101011001011011010110011101100111011001010110111001011010001100000110010001010111011000110110011101100001011011010011010101101000010110100111100101000010011011100101100101101001010000100011010101100011011011010011010101101100010110010101001101000010011101010110001000110010010010100110111101011010011110010100001001000110010100100110101100110100011100110100100101000111001101010110100001100011010100110100001001101110011001000101100001001001011001110110001101101101011101000110111001011010010110000100101000110110011000110110100101000010011110000110010001101110010011100111101001100100011011100100001001101111011001010101011101100100011100110100100101000111011001000110100101001001010010000100111001110101011000110100011101100100011010010101101001010011010000100011000101100001010010000101001001111001010010010100011101000110011011110110010101101101001110010111100101011010010101110101100101110011010010010100100001001010011011010101100100110011010010100111011101100100011011010011010100110101011001010101011101110111011001110110000101101110010101100111100101011001010100110100001001101110011001000101100001001010011100110100100101000111001101010110110001100011011010010100001001101110011001000101100001001001011001110101100100110010010101100110100101100011010101110110100001110111010110100111100101000010011010010110001101111001010000100110111001100001011011010100100101100111011001010101011100110101011011000110010001001000010010010110011101011001001100100101011000110010011001010110111001001010011011010100110001000011010000100110111101011001010110000110110001111001010110100110110101011001011001110101101001101101010010100011011001100011011011010100101001101000011000110110100101000010001100010110001001101110010001010110011101011001001100100110100001110110011001010101100001011010011011010110010001011000010010100111100001001001010001110110010000110001011000110110100101000010011011000110001101101101010110100110111101100101010101110110001101100111010110010110111001001101011001110101101000110011010101100111100101001001010010000100111001110101011000110100011101100100011010010101101001011000010110100111010001100010011011010110010000110010010110010110110101000101011101010100100101000110010100100110100101011001011011100100010101100111011001010101011101101000011101110110010101000011010001010011110100001010000010100100111001101000011001100101010101111101011000100011100001101010010001110101100001011010001010100111000000111110010110100100010101000110011001010110100101000010010101110101111001011010011110100011010101011010001010100010100001000001010110100101101001111001001111000100000101000110011000110011010001011010001010010101001001011000011010110111101101010010001110010110000100100101011100000111100100111001011000100101100100100110011011110100011101010111011100010100001001011010010101010101101001111001001110110110111100110100010101100111101101100011001111110010110101000001011000010111001001010000010001000100000101011010010000100110001001111110010110000100010000100101010100010100000001100010001000110111100000100100011001010101101000101010001101100011010101000100011000100011100101001000011000110100101101100001001001000111110000110011001110000110000101000011010011000100111001001100011000010111011000101010001101000011011101100011001101000101101000101001001110000101100100111011011101000011100001100000010101110100111100101010010100010100001101100001001001000010001101100100010000000101011101101110001111100101111001111101011000100101001001100011001100010100011001010111010001100101010100110010010011000101100100111011010100100010001100111111010101110110111000111110010111110011100101011010011110010011101101100110010000010100000101100001001110000100010001001100010110000011111001001101011001110011100001010111010011010101011001000101010011000100110001110100001001000011110001110000011001000011001001100101001010110110011001010111010000000010011001000011010000000100000101100001011100100101000001000100010000010101101001000010011000100111111001011000010001100110110100100001010001110101101001011000011010010011011100100101010001100110111001000010011010100100111001000110001111010011100100110100001100100101011101001101011110010101001101111000010010000010100101010011001001000111000101010110011000000100110101001111001110010101011001001011010001100111001001000000010010010101100001010000011010010111011001001001010101110101001001100001011010010101011101101001011001010111000101101011010101100110110001100111001001010111110001010110001111100100001001000000011111010101011001110001011111000011010001000011010010000110010100101001011101000011000101010111011011100010100001111000011011110100011000101001011111010110001001010001010101110100100001101101010000100110111001000111001001100100110101000111001101010100011100101011011110110101011000110101010010000110010101011111010011100111000001010111010011010100110101100001001110010101011100101101001111100100111000111000010010000100010001111000011010100111110001001000011001010100000000101011011101100100011101101000001000110011100101100000010101110100110101110111011000110110100101010110010010110100011001110110011011000100100001100001001110010110100000110100010101110100100000110010011111100011010001010110001111100100010001110101010000010101011100111011001100000011110100111001010101100011111001010110001010110110111001010111011010010110010000111000011010110101011001101100011110000101011000110101010000010101010101111010001110110011100101001000001110000110111001000110011001110011001101010011001001010100100001010111010000010101010001010111001100110111110101001000010110100010100001000100001100000100100101000001010100110110111000110000010101110100000001001011010100110011100101001001010000010110001001111100011100110101011100101101011111100101000100110100010101100100101101100111011110110011011001010110011100010010000101001100010000010100100101011000001101110110011001000101010101110100000001010010001000010110110001010111011011100110111001100110011011100100100001000100010110010011010101101010010010000011100000111111010100100110010101010111010011010101011001010100011010000100100000101001011000100010010000110010010101110011111101011110010000010100001101000111001010110111101101010000011011110101011101001000011111100110001101110100010101100100101101011000001111100011000001000111011001000101011001010101011010100100011101000010011000010110100101111011010010000011100000110101011001110011000101001000011000010100101101001110001101010100100101011000001101110110110001000110010010010110001100111000001110110100100101010110010100000111001001010100011011110100011001100111001101110111010001011000010010010011010101100001010100110011001001010111011011100111100101000111010001000100100000100011010010110011001000110001010101110011101101110010011011110011100001000111011000110111000100101001001100000100100101100010001111000010101001101010、
它可以将二进制按每 8 位一组分割,然后将每组二进制转换为对应的 ASCII 字符
Time to choose! There are two blocks of cipher, the flag is in one of them. Choose wisely!
R3VyIHN5bnQgdmYgMHd4eXsxPW54cl9zeUBUX2JTX1BFbENHQl9QdW4xMSF9ISBWJ3ogeHZxcXZhdC4gTmNldnkgU2JieSEgR3VyZXIgdmYgYWIgc3ludCB2YSBndXZmIGJhcn4gT2hnIFYgcG5hIGNlYml2cXIgbGJoIGZienIgdXZhZyBzYmUgZ3VyIGJndXJlIG95YnB4IQogWm5sb3IgdmcgdmYgbiBwYnpjbnBnIGVyY2VyZnJhZ25ndmJhIGJzIFZDaTYgbnFxZXJmZnJmLCBuZyB5cm5mZyBucHBiZXF2YXQgZ2IgZmJ6ciBzaGFhbCBFU1BmIFYgZXJucSBybmV5dnJlLiBOc2dyZSBndW5nLCBsYmggenZ0dWcgam5hZyBnYiB5cm5lYSBub2JoZyBFRk4sIG5hcSBndXIgcmtnZXJ6ciBxdnNzdnBoeWdsIGdiIHNucGdiZSB1aHRyIGFoem9yZWYsIHJmY3Jwdm55eWwganVyYSBndXJsIG5lciBndXIgY2VicWhwZyBicyBnamIgeW5ldHIgY2V2enJmLCBoYXlyZmYgZmJ6cmJhciB1bnEgY2hveXZmdXJxIGd1ciBlcmZoeWcgYnMgZ3VyIHNucGdiZXZtbmd2YmEuIFRiYnEgeWhweCE=
NhfU}b8jGXZ*p>ZEFeiBW^Zz5Z*(AZZy<AFc4Z)RXk{R9a%py9bY&oGWqBZUZy;o4V{c?-AarPDAZBb~XD%Q@b#x$eZ*65Db9HcKa$|38aCLNLav*47c4Z)8Y;t8`WO*QCa$#d@Wn>^}bRc1FWFU2LY;R#?Wn>_9Zy;fAAa8DLX>Mg8WMVELLt$<pd2e+fW@&C@AarPDAZBb~XFm!GZXi7%FnBjNF=942WMySxH)S$qV`MO9VKFr@IXPivIWRaiWieqkVlg%|V>B@}Vq|4CHe)t1Wn(xoF)}bQWHmBnG&MG5G+{V5He_NpWMMa9W->N8HDxj|He@+vGh#9`WMwciVKFvlHa9h4WH2~4V>DuAW;0=9V>V+nWid8kVlxV5AUz;9H8nFg3S%HWATW3}HZ(D0IASn0W@KS9IAb|sW-~Q4VKg{6Vq!LAIX7fEW@R!lWnnfnHDY5jH8?ReWMVThH)b$2W?^ACG+{PoWH~ctVKX>0GdVUjGBai{H85g1HaKN5IX7lFIc8;IVPrToFg7tXI5aS2WnyGDH#K21W;ro8Gcq)0Ib<*j
用base64解码第一个cipher,得到:
Gur synt vf 0wxy{1=nxr_sy@T_bS_PElCGB_Pun11!}! V'z xvqqvat. Ncevy Sbby! Gurer vf ab synt va guvf bar~ Ohg V pna cebivqr lbh fbzr uvag sbe gur bgure oybpx! Znlor vg vf n pbzcnpg ercerfragngvba bs VCi6 nqqerffrf, ng yrnfg nppbeqvat gb fbzr shaal ESPf V ernq rneyvre. Nsgre gung, lbh zvtug jnag gb yrnea nobhg EFN, naq gur rkgerzr qvssvphygl gb snpgbe uhtr ahzoref, rfcrpvnyyl jura gurl ner gur cebqhpg bs gjb ynetr cevzrf, hayrff fbzrbar unq choyvfurq gur erfhyg bs gur snpgbevmngvba. Tbbq yhpx!
用rot13破译,得到:
The flag is 0jkl{1=ake_fl@G_oF_CRyPTO_Cha11!}! I'm kidding. April Fool! There is no flag in this one~ But I can provide you some hint for the other block! Maybe it is a compact representation of IPv6 addresses, at least according to some funny RFCs I read earlier. After that, you might want to learn about RSA, and the extreme difficulty to factor huge numbers, especially when they are the product of two large primes, unless someone had published the result of the factorization. Good luck!
NhfU}b8jGXZ*p>ZEFeiBW^Zz5Z*(AZZy<AFc4Z)RXk{R9a%py9bY&oGWqBZUZy;o4V{c?-AarPDAZBb~XD%Q@b#x$eZ*65Db9HcKa$|38aCLNLav*47c4Z)8Y;t8`WO*QCa$#d@Wn>^}bRc1FWFU2LY;R#?Wn>_9Zy;fAAa8DLX>Mg8WMVELLt$<pd2e+fW@&C@AarPDAZBb~XFm!GZXi7%FnBjNF=942WMySxH)S$qV`MO9VKFr@IXPivIWRaiWieqkVlg%|V>B@}Vq|4CHe)t1Wn(xoF)}bQWHmBnG&MG5G+{V5He_NpWMMa9W->N8HDxj|He@+vGh#9`WMwciVKFvlHa9h4WH2~4V>DuAW;0=9V>V+nWid8kVlxV5AUz;9H8nFg3S%HWATW3}HZ(D0IASn0W@KS9IAb|sW-~Q4VKg{6Vq!LAIX7fEW@R!lWnnfnHDY5jH8?ReWMVThH)b$2W?^ACG+{PoWH~ctVKX>0GdVUjGBai{H85g1HaKN5IX7lFIc8;IVPrToFg7tXI5aS2WnyGDH#K21W;ro8Gcq)0Ib<*j
询问claude 3.7 sonnet thinking
这段字符串看起来像是某种特殊编码,提示提到了”IPv6地址的紧凑表示”和”有趣的RFC”。这让我想到了RFC 1924 (发布于1996年4月1日,是一个著名的”愚人节RFC”),它描述了一种使用base85编码来紧凑表示IPv6地址的方法。
使用base85解密:
I'm so sorry, I forgot to save the private key to decode the flag. But some supercomputer have already cracked it and uploaded to an online db. Can you find the flag?
n = 0x771b68deea7e2ecd0fa15099ae9085e1a6b163c415bde56c61ec811201d52e456e4a876db6da7af2695e206d9e3b23de02a16f675ad087c4bef3acc6c4e16ab3
e = 65537
c = 0x5641d8b05fda28c9af355a488bb6d97d9fe21ea645bc25814db317f04faa84a6fd93fa383396523f050b968e197f89febad840614840eebd675a3f917324f9d0
After checking factordb.com, I’ve found that this modulus has indeed been factored! Here’s how to retrieve the flag:
p = 0x9c4d8526ec76c48b9a31b84e9f83490e9381bacb813b1e8c58d11bd2d4de76c9
q = 0xc2c4df8539ddabc2fb09dd7035df257c8aaa36b31c1c65bcb9b836a8c9c4e979
用python解码得到: b’0ops{bR@v0_y0u_rEAl1Y_90oD_a7_CRyPTO}‘
2025-03-30
关于iphunter 昨天晚上发现用梯子的不同节点加使用流量可以得到不同网段,昨天刷到了20个,今天早上开了个农夫山泉机场,然后刷到了32个,排名上升到40
2025-04-01
做出来了rick roll,全程借助claude 3.7 sonnet thinking做出来,这个题也很简单 https://gist.github.com/1JI0O/2e6a18958352dc9f6a17d5714a0ba9d5 排名暂时上升到61
我正在参加ctf比赛,这是其中的一道题,题目给出了一个需要我们注入操作的网站,以及这个网站的源码,这个网站是在线科学计算器,可以输入数学表达式,也可以看到历史记录,你需要根据网站源码,告诉我我需要做什么,才能获取到flag 格式为: 0ops{this_is_a_sample_flag}。
我正在参加ctf比赛,这是其中的一道题,题目给出了一个需要我们注入操作的网站,以及这个网站的源码,这个网站是在线科学计算器,可以输入数学表达式,也可以看到历史记录,你需要根据网站源码,告诉我我需要做什么,才能获取到flag 格式为: `0ops{this_is_a_sample_flag}`。 #!/bin/sh echo $FLAG | tee /flag chmod 744 /flag chmod 740 /app/* cd /app && flask run -h 0.0.0.0 -p 8080 下面是app.py #!/usr/bin/env python3 from flask import Flask, request, jsonify from flask import render_template app = Flask(__name__) @app.route('/calc', methods=['GET']) def calculate(): expression = request.args.get('expr') if not expression: return jsonify({"error": "No expression provided"}), 400 for n in range(26): if (chr(n + 65) in expression or chr(n + 97) in expression): return jsonify({"error": "No letters allowed"}), 400 for n in "!\"#$%&',:;<=>?@[\]^_`{|}~": if n in expression: return jsonify({"error": "No special characters allowed"}), 400 try: result = eval(expression) return jsonify({"result": result}) except Exception as e: return jsonify({"error": str(e)}), 400 @app.route('/') def index(): return render_template('index.html') if __name__ == '__main__': app.run(debug=True) 下面是index.html <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>在线计算器</title> <style> :root { --primary-color: #4a90e2; --hover-color: #357abd; --background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%); --shadow: 0 10px 20px rgba(0,0,0,0.1); } * { box-sizing: border-box; margin: 0; padding: 0; font-family: 'Segoe UI', sans-serif; } body { min-height: 100vh; display: flex; justify-content: center; align-items: center; background: var(--background); } .calculator { background: rgba(255, 255, 255, 0.95); padding: 2rem; border-radius: 20px; box-shadow: var(--shadow); width: 90%; max-width: 500px; backdrop-filter: blur(10px); } h1 { color: #2c3e50; text-align: center; margin-bottom: 1.5rem; font-weight: 600; } .input-group { margin-bottom: 1.5rem; } input { width: 100%; padding: 1rem; border: 2px solid #e0e0e0; border-radius: 10px; font-size: 1.2rem; transition: border-color 0.3s ease; } input:focus { outline: none; border-color: var(--primary-color); } button { width: 100%; padding: 1rem; background: var(--primary-color); color: white; border: none; border-radius: 10px; font-size: 1.1rem; cursor: pointer; transition: all 0.3s ease; } button:hover { background: var(--hover-color); transform: translateY(-2px); } .result { margin-top: 1.5rem; padding: 1rem; background: #f8f9fa; border-radius: 10px; text-align: center; font-size: 1.4rem; min-height: 60px; } .error { color: #e74c3c; margin-top: 1rem; text-align: center; display: none; } .history { margin-top: 1.5rem; padding: 1rem; background: #f8f9fa; border-radius: 10px; } .history h3 { color: #2c3e50; margin-bottom: 0.5rem; } #historyList { list-style: none; } @media (max-width: 480px) { .calculator { padding: 1.5rem; } h1 { font-size: 1.5rem; } } </style> </head> <body> <div class="calculator"> <h1>📐 在线科学计算器</h1> <div class="input-group"> <input type="text" id="expression" placeholder="输入数学表达式,例如:3 + 4 * (5 - 2)" autocomplete="off" > </div> <button onclick="calculate()">计 算</button> <div class="result" id="result"> 🎯 等待计算... </div> <div class="error" id="error"></div> <div class="history"> <h3>📜 计算历史</h3> <ul id="historyList"></ul> </div> </div> <script> // 为输入框添加回车键支持 document.getElementById('expression').addEventListener('keypress', function(e) { if (e.key === 'Enter') calculate(); }); async function calculate() { const expressionInput = document.getElementById('expression'); const resultDiv = document.getElementById('result'); const errorDiv = document.getElementById('error'); const historyList = document.getElementById('historyList'); // 清除之前的状态 errorDiv.style.display = 'none'; resultDiv.textContent = '⏳ 计算中...'; resultDiv.style.color = '#2c3e50'; try { const response = await fetch(`/calc?expr=${encodeURIComponent(expressionInput.value)}`); const data = await response.json(); if (!response.ok) { throw new Error(data.error || '未知错误'); } // 显示结果 resultDiv.innerHTML = ` <div style="color: #27ae60;">✅ 计算结果:</div> <div style="font-size: 2rem; margin-top: 0.5rem;">${data.result}</div> `; // 添加到历史记录 const li = document.createElement('li'); li.innerHTML = ` <span style="color: #7f8c8d;">${expressionInput.value} = </span> <strong>${data.result}</strong> `; historyList.insertBefore(li, historyList.firstChild); // 清空输入框 expressionInput.value = ''; } catch (error) { resultDiv.textContent = '❌ 计算失败'; errorDiv.textContent = error.message; errorDiv.style.display = 'block'; } } </script> </body> </html> 请用中文回答
2025-04-15 劳动学时到了