CTFshow单身杯 部分wp
前言:不会吧不会吧不会有人520521不约会打比赛吧
1、单身杯热身题目
应该是后台做了日期相关的验证,反正照常输一个日期不要太离谱的就哦了
2、misc签到
题目提示:
下载附件,ARCHPR爆破所有可打印字符,位数为5位,得到压缩包密码61f@X
010editor打开解压得到的图片可以找到
base64解码
同时对图片丢进zsteg一把梭后得到半段flag
补充二维码定位块扫描得到前半段
最终flag为
ctfshow
3、没大没小的串串
丢下某下雨天去练科三但是还没回来说让我吃席的师傅的脚本
灵感来自Leecode784题
import hashlib
def letterCasePermutaion(s: str):
res = []
def dfs(idx, n, s:str):
if idx == n:
res.append(s)
return
if s[idx].islower():
dfs(idx + 1, n, s[:idx] + chr(ord(s[idx]) - 32) + s[idx + 1:])
if s[idx].isupper():
dfs(idx + 1, n, s[:idx] + chr(ord(s[idx]) + 32) + s[idx + 1:])
dfs(idx + 1, n, s)
dfs(0, len(s), s)
return res
for s in letterCasePermutaion("y0U_RE4lLy_kn0W_TH1S_ConGr4tUlAT10Ns"):
if hashlib.md5(s.encode(encoding='UTF-8')).hexdigest() == "7513209051f455fa44d0fa5cd0f3e051":
print(s)
print("success")
exit()
4、任性老板
懒得写 贴出题人wp
- 首先进行一个百度图的识,发现了图片的来源是搞笑段子,点进方框中的链接,可以找到这个告示的完整图
-
在完整的图中我们可以发现,右下角有“成都最认真做面的店主”字样,百度搜索这几个字,可以找到一个相关性较大的视频
-
在视频中可以看到这家店的店名以及题目中的告示
- 然后百度搜索“左撇子私房面”,即可找到店家的手机号码
解题思路2
1、同解题思路1,先找出这张告示的完整版
2、在完整版的右下角可以看到“成都发布”的微博水印,于是可以从成都发布的微博入手
3、在成都发布的微博中按内容搜索关键字“老板”或“面”,一直翻翻翻就能翻到这张照片的微博,从评论区中可以获得店名
5、蛤壳雪茄-1
(俺出的 别骂 玻璃心.jpg)
题目描述:
如果有航空迷的话,应该可以一眼看出这个尾巴是蚌式反推,而现役的拥有蚌式反推的飞机只剩加航局的732有了,所以很快就能缩小了范围。
Yandex识图,可以得到以下结果
结合谷歌搜索
便可得到官网地址www.chronoaviation.com
6、蛤壳雪茄-2
题目描述:
2个附件,观察图2背景
Keen broek air,还有白色飞机尾部的字体c-gtkb
google搜索得到
点开几个网页得到信息
搜索这两个地点的机场照片,对比图1中红色建筑特征
可得知地点为加拿大的Iqaluit,得到flag。
附:
如果有看samchui的师傅应该就能找到图片的出处
https://www.bilibili.com/video/BV1tR4y1K77d
或者谷歌识图时候凑巧点进来这个频道并且稍微看了看
便有可能拿到2题的flag了。
7、The Dancing Men
下载得到附件,跳舞的小人密码对照一下
please use underslash between every word with initials in capitals
the flag is everyone loves taoshen
ctfshow
8、古典base
前言:百度百科
打开靶机,得到字符串
YQ34RNmzcA2thYvjdh3hsY4iM1zhAN3jOYTwgN2mMZSl0O2WMF2jYM4zLZT9
因为是动态靶机,猜测flag格式为uuid格式8-4-4-4-12
同时因为提到了base,将ctfshow{base64加密一下
观察前几位
同时讲靶机中的字符串进行栅栏爆破
观察找到
解码得到
8、伪装成RSA的MUSC
下载得到附件,发现压缩包有密码
打开文本
猜测是敲击码,转为字符后结合题目提示nnkyiee猜测为九键密码
得到压缩包密码
解压后得到
没有e 将之前的敲击码转成morse,同时也是九键密码
ephi不互质 风二西工具一把梭
或者贴一下风二西的脚本
import gmpy2
from Crypto.Util.number import *
# 当e约去公约数后与phi互素
def decrypt(p, q, e, c):
n = p * q
phi = (p - 1) * (q - 1)
t = gmpy2.gcd(e, phi)
d = gmpy2.invert(e // t, phi)
m = pow(c, d, n)
print(m)
msg = gmpy2.iroot(m, t)
print(msg)
if msg[1]:
print(long_to_bytes(msg[0]))
p= 104791011181838632984653274103788907544368791187076335471213944302284807790748266682463882231027996693193572906324997830449026622973759383503770415564182978292591648950046318334646695444450310198889173256818225657021740635305655975465047235964535452899499225672868835617089387862240683251385991237767922785241
q= 90960275501044744928190829668121052091907954961680699856419749850071871964532625791461291878837850007468243999602408861075793822642812918261908705981765163097854558645253227202861087920836248185116835897960441132756288108873425215132591817120886993422056486860736156966942973556049071468967279588398766107387
e= 686894
c= 4760904535528937856481690262397732355407727622511444072793643008141049985355461179480947416206998527526080939575085820881304511476110146502666062305981955205407338190002810791950980724498999422997162030791074913110508848669455374727003737734373054800682699103953435264256125566100583042576647316240024759470816653960355845811060204737625557855881058175018971502763224693108395514674517119000539255761180454879538780379694450171070008832544248927030602002726819086629963953652235265972324121785879653123472819473679133833118153759368617324927859670207154545276222169571548729874270877516947380905110040442091750015568
decrypt(p, q, e, c)
ctfshow
9、re签到
下载附件,丢进ida
f5调出伪代码
跟进,查看be函数
3次base64解码
10、magic
下载附件丢进ida
跟进checktoken
验证同时满足三个条件