XYCTF2025-WriteUp
*代表未解决,可能是卡了,也可能是没思路了,简单做个记录,然后跑了,再或者是后续没来得及复现,在此处留个坑,等以后回来填上……
Crypto
Division
LamentXU学不明白除法了,能教教我吗?(adwa这个骗人的大坏蛋>_<,这个才是签到啊)
# -*- encoding: utf-8 -*- |
MT19937,令分母为1,连续获得624轮随机数,再预测rand1 rand2
即可得到flag
from pwn import * |
Complex_signin
As everyone knows, a check-in challenge shouldn’t look too much like a check-in. So, this is a simple partial m leakage in RSA—but then again, it doesn’t seem like just a simple partial m leakage in RSA.
from Crypto.Util.number import * |
复数域下的明文高位泄露,去年就开始玩复数了,这里的话可以打二元copper,这里也是直接套用小鸡块师傅的脚本,其实跟一元相差不大
bound
为两个根的上界,m
为移位,d
为多项式中的最高幂
$C\equiv(m_re+m_imi)^{3}\%n
# sage |
reed
I’ve invented a new random number generation algorithm, and I believe it’s secure enough to withstand all known attacks!
import string |
怎么说呢,一开始看到随机数种子,以为可以搞搞随机数漏洞,发现其实并不是的
$c_{0}\equiv am_{0}+b\%p
import string |
choice
Before we wrap up, here’s one last easy problem.
random.py
说实话没什么用
from Crypto.Util.number import bytes_to_long |
这里还是MT19937,伪随机数算法的缺陷,2496*8=19968刚好够一轮state
,注意到我们这里需要的是逆推上一个state
(相当于反向预测吧)
此处借鉴一下未央师傅的exp
# sage |
prng_xxxx*
Why is it called prng_xxxx?Well, to cut costs and improve efficiency, we “laid off” the LFSR. Of course, this means the PRNG now has to do a lot more work—so it’s getting way more salary! XDNote: You can check out prng_lfsr on https://tangcuxiaojikuai.xyz/post/cb7cb618.html for some inspiration.
from Crypto.Cipher import AES |
勒索病毒*
帝皇坤在渗透的时候不小心运行了一个exe文件,然后重要文件被加密了,你能帮帮他吗
flag.txt.enc
:bf0cb5cc6bea6146e9c1f109df953a57daa416d38a8ffba6438e7e599613e01f3b9a53dace4ccd55cd3e55ef88e0b835
然后是个可执行程序
复复复复数*
天啊,这个复复复复数比我认识中的复数还多出了……?
class ComComplex: |
reference
后续这三题怕是不好复现了……
Misc
XGCTF
2024年CTFshow举办了一场名为“西瓜杯”的比赛(XGCTF)。其中LamentXU在出题的时候,从某场比赛拉了道原题下来改了改,结果传文件的时候传错了传成原题了。因为这件事LamentXU的损友dragonkeep在他之前的博客上的原题wp上加了一段flag来嘲笑LamentXU。请你找到XGCTF中唯一由LamentXU出的题,并找出这题对应的原题,接着找到dragonkeep师傅的博客,并从博客上讲解该题的博文中找到flag。(hint:dragonkeep师傅因为比较穷买不起域名,因此他博客的域名在dragonkeep的基础上多了个字母)
(出题人:LamentXU)
可以去ctfshow
直接找XGCTF
,看出题人出了哪道题目
然后,找dragonkeep
师傅的博客,过程不细说,懂的自然懂,直接放结果flag{1t_I3_t3E_s@Me_ChAl1eNge_aT_a1L_P1e@se_fOrg1ve_Me}
签个到吧
最小的,具有图灵完备性的语言是?
>+++++++++++++++++[<++++++>-+-+-+-]<[-]>++++++++++++[<+++++++++>-+-+-+-]<[-]>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++[<+>-+-+-+-]<[-]>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++[<+>-+-+-+-]<[-]>+++++++++++++++++++++++++++++++++++++++++[<+++>-+-+-+-]<[-]>+++++++++++++++++++++++++++++[<+++>-+-+-+-]<[-]>+++++++++++++++++[<+++>-+-+-+-]<[-]>++++++++++++[<+++++++++>-+-+-+-]<[-]>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++[<+>-+-+-+-]<[-]>++++++++[<++++++>-+-+-+-]<[-]>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++[<+>-+-+-+-]<[-]>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++[<+>-+-+-+-]<[-]>+++++++++++++++++++[<+++++>-+-+-+-]<[-]>+++++++++++++++++++++++++++++[<++++>-+-+-+-]<[-]>++++++++[<++++++>-+-+-+-]<[-]>+++++++++++++++++++[<+++++>-+-+-+-]<[-]>+++++++++++[<++++++++>-+-+-+-]<[-]>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++[<+>-+-+-+-]<[-]>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++[<+>-+-+-+-]<[-]>++++++++++++[<+++++++>-+-+-+-]<[-]>++++++++++[<+++++++>-+-+-+-]<[-]>+++++++++++++++++++[<+++++>-+-+-+-]<[-]>++++++++++[<+++++>-+-+-+-]<[-]>++++++++[<++++++>-+-+-+-]<[-]>++++++++++[<+++++>-+-+-+-]<[-]>+++++++++++++++++++++++++++++++++++++++++++++++++++++[<+>-+-+-+-]<[-]>+++++++++++++++++++[<+++++>-+-+-+-]<[-]>+++++++++++++++++++++++[<+++>-+-+-+-]<[-]>+++++++++++[<++++++++++>-+-+-+-]<[-]>+++++++++++++++++++++++++++++++++++++++++++++++++++++[<++>-+-+-+-]<[-]>++++++++[<++++++>-+-+-+-]<[-]>+++++++++++[<+++++>-+-+-+-]<[-]>+++++++++++++++++++[<+++++>-+-+-+-]<[-]>+++++++[<+++++++>-+-+-+-]<[-]>+++++++++++++++++++++++++++++[<++++>-+-+-+-]<[-]>+++++++++++[<+++>-+-+-+-]<[-]>+++++++++++++++++++++++++[<+++++>-+-+-+-]<[-] |
brainfuck
,但很遗憾解不出来,没关系交给AI
,很高兴AI
利用它强大的分析能力,分析出flag
的形式了,即>
到[
之间的加号数量乘上<>
之间的加号数量就是flag
的ASCII值(本质原理确实如此),还是要拷打它要个脚本,因为统计的太拉了。。。
def decode_bf_string(filename): |
flag{W3lC0me_t0_XYCTF_2025_Enj07_1t!}
题目这里只是缺乏输出,我们只需要使用.
即可(难道你没发现少了这个东西吗)
全部的<[
替换为<.[
即可
曼波曼波曼波
给了一张假flag
的二维码,然后smn.txt
很明显是倒序的base64,把图像下载下来发现jpg图片尾有压缩包,导出,压缩包密码盲猜XYCTF2025
,然后得到两张看似一样的照片,直接上双图盲水印XYCTF{easy_yin_xie_dfbfuj877}
MADer也要当CTFer*
你知道PRTShark是什么意思吗,P是位置,R是旋转,T是不透明度,S是缩放,而hark代表这道题是hard to hack吧
蚝康,这题需要使用到AE
,一款图形视频处理软件,那还是蹲个wp
观摩一下吧
会飞的雷克萨斯*
2025年1月30日W1ndys上网冲浪时,收到了舍友发来的聊天记录,聊天记录显示,一小孩放鞭炮引爆地面,请定位爆炸点的具体位置,该题解出需要通过正常的osint题目做题思路
好,是社工,笑死,不玩(狗头)
Greedymen*
Isn’t it ironic? Greed isn’t limited. Freedom is a limited resource.
nc 8.147.132.32 17479 |
肥肠好玩的一个游戏
sins*
“Come now, let us settle the matter,” says the LORD. “Though your sins are like scarlet, they shall be as white as snow; though they are red as crimson, they shall be like wool. - Isaiah 1:18
from secret import flag |
Lament Jail*
异想体编号:H-██████ ;异想体名称:flag;安全等级:优;状态:该异想体已突破收容。描述:该异想体本质上为一段”flag{“开头”}”结尾的字符串。它极度胆怯,害怕人类不同等级的观察。该异想体经常突破收容。他的内容是██████████████████████████;收容条件:flag被收容在一个对公网开放的主机(flag-1,又名Lament Jail)上的/flag文件里。该主机上运行有能够让人们完全控制主机的服务(使用套接字进行远控),便于观测异想体状态;事件经过:事件编号████████████████。████年██月███日,由于工作人员██████████████的失误,flag被赋予高权限。它成功突破了收容。flag目前被观测到改写了人们控制它的服务。在这之上做了一些加密措施,并限制了远程代码的执行。这使得我们极难观测该异想体。同时,它摆脱了文件/flag的限制,逃到了█████████████。所幸,我们在主机上留下了/bin/rf,它可以直接从███████████████读取flag。同时,员工█████████████通过某种手段取回了正在运行的服务的源码。请你连接并突破该异想体在Lament Jail上做的限制,控制这台主机,找回flag。
# -*- coding:utf-8 -*- |
喜欢就说出来*
小Shark在上课时和自己的暗恋对象坐在了一起,小Shark想要把悄悄话和文件传给同桌,可惜小Shark没有移动硬盘,不过这难不住聪明的小Shark,小Shark在同桌的电脑上敲了几下键盘,用自己的浏览器给同桌试传了两张自己的照片和一句悄悄话,你能发现小Shark对同桌说了什么吗?会不会是……520?!呢?
是流量包分析呢,先润
Web
Signin
来点真正的签到吧!
# -*- encoding: utf-8 -*- |
这里绕过读取文件的限制,./../
相当于../
,意义为先进入当前目录(其实就是留在原地),然后再退到上一级目录
/download?filename=./.././.././../secret.txt
得到Hell0_H@cker_Y0u_A3r_Sm@r7
下面跟Bottle Poem大致一样,pickle反序列化+cookie签名
,不过这里cookie
的签名用的不再是md5
而是sha256
,应该是出于安全性考虑
import hashlib |
然后通过/download?filename=flag
路由进行下载即可XYCTF{We1c0me_t0_XYCTF_2o25!The_secret_1s_L@men7XU_L0v3_u!}
ezsql(手动滑稽)
简单sql(手动滑稽),不需要sqlmap等自动化工具,请手工哟∧_∧
username
单引号注入报错,确定为注入点,也可以看出是sqlite
fuzz
一下发现空格、+-*|、换行符、逗号,union等被过滤了
找到绕过参考
先试试万能密码能不能直接登陆,发现是可以的
这里尝试盲注能不能注出秘钥
空格可以用%09
即tap
代替,逗号用from for
改一下以前的布尔盲注脚本
import requests |
输入秘钥后,告诉我们命令执行无回显,又过滤了空格,简单,直接重定向command=cat${IFS}/flag.txt${IFS}>1.txt
ez_puzzle
你能在两秒之内完成拼图吗?
可以搜索前端js
脚本,因为本题的关键肯定是在时间,所以搜一下time
,发现了startTime endTime
完成拼图后通过侧边栏进入开发者工具,正常来说花费的时间应该是endTime-startTime
,控制台只能查看startTime
,说明我们只能通过完成拼图那一刻才能得到endTime
,也就是前端页面的实时时间
所以我们可以在控制台输入startTime=Date.now()
,从而使花费的时间为0flag{Y0u__aRe_a_mAsteR_of_PUzZL!!@!!~!}
fate*
一生中能改变命运的机会可不多啊。
#!/usr/bin/env python3 |
Now you see me 1*
{%print("Welcome the four horsemen tonight!")%}
先解base64
# YOU FOUND ME ;) |
Now you see me 2*
{%print("We are the four horsemen.")%} 压缩包密码为“Now you see me 1”的flag
出题人已疯*
出题人已疯,你知道出题人为什么疯吗
# -*- encoding: utf-8 -*- |
出题人又疯*
出题人又疯了,你知道这次出题人为什么疯吗?
(附件密码是“出题人已疯的flag”)