山河shctf2023WP

[WEEK1]签到题

flag{this_is_flag}
请添加图片描述

Jaeger lover

可以看到图片后面有信息
请添加图片描述

他问这个的系统是什么,这个猎人系统,根据查询,是这张图片里面的机甲叫作猎人机甲,这个机甲是《环太平洋》里面的赤红风暴,所以搜一下赤红风暴的系统是什么,搜到这个,其实做的时候搜到了其他的,跟这个有点不一样的,问出题人,才知道确定这个,steghide的密码:Tri-Sun Horizon Gate

请添加图片描述

得到压缩包密码,.*+#1Ao/aeS
请添加图片描述
得到png图片,将它的高延长,又得到一个密码:K34-759183-191
请添加图片描述

用OurSecret,这是一个可以在png图片藏文件的工具,输入密码得到flag,flag{A1l_boys_aRe_Jaeger_L0ver!!}
请添加图片描述

熊斐特

埃特巴什码解码,flag{atbash cipher}
请添加图片描述

小兔子可爱捏

看题目可能是rabbit加密,
请添加图片描述

搜了一下终极答案是42,
请添加图片描述

flag{i_love_technology}
请添加图片描述

难言的遗憾

请添加图片描述

是一个中文电码解密,flag{一天不学高数我就魂身难受}
请添加图片描述

迷雾重重

请添加图片描述

用蛙蛙工具https://www.iamwawa.cn/morse.html,flag{MORSE_IS_VERY_FUN}
请添加图片描述

凯撒大帝

凯撒加密,flag{chutihaonan}
请添加图片描述

进制

flag{ahfkjlhkah}
请添加图片描述

黑暗之歌

千千秀字的盲文解密不了,不知道为什么,只能用这个了,http://www.atoolbox.net/Tool.php?Id=837#google_vignette
请添加图片描述

接着解,
请添加图片描述

再到千千秀字,音符解密,flag{b2cc-9091-8a29}
请添加图片描述

what_is_m

简单,这个将flag字节变成长整数而已,将它转回来即可,
请添加图片描述

刚刚是bytes_to_long,现在就是long_to_bytes了,flag{7Here_4re_S3Ver41_AI7ErNAT1V3S_tO_Th3_IoNG_7o_8YTeS_FUNC7i0n_GTbddIO3e3es}
请添加图片描述

I am very ok!

https://www.splitbrain.org/services/ook
请添加图片描述

解码,flag{123456789}
请添加图片描述

really_ez_rsa

请添加图片描述

关于逆元可以参考一下https://zhuanlan.zhihu.com/p/449221995,
参考exp:

import Crypto.Util.number

p = 217873395548207236847876059475581824463
q = 185617189161086060278518214521453878483
c = 6170206647205994850964798055359827998224330552323068751708721001188295410644
e = 65537

# 计算 n
n = p * q    #正常就是n = p * q

# 计算私钥 d
d = pow(e, -1, (p-1)*(q-1))       #因为φ(n)=(p-1)*(q-1),所以这里d就是求e对φ(n)的乘法逆元
print(d)    #求出秘钥d
# 解密密文 c
m = pow(c, d, n)

print(m)
print(Crypto.Util.number.long_to_bytes(m))

'''
简单介绍一下RSA的符号代表:

    p和q:这是两个不同的大质数,用于生成RSA密钥对。

    n:这是公共模数,计算公钥和私钥时使用。它是p和q的乘积,即n = p * q。

    φ(n):这是欧拉函数(Euler's totient function),用于计算与n互质的正整数的数量。对于RSA,φ(n) = (p - 1) * (q - 1)。

    e:这是公钥指数,也称为加密指数。它是一个与φ(n)互质的整数,通常选择一个较小的质数作为公钥指数。

    d:这是私钥指数,也称为解密指数。它是e的模φ(n)的乘法逆元,即 (e * d) mod φ(n) = 1。所以求d可以用d = pow(e, -1, (p-1)*(q-1)),除了这个好像还有invert(e, phi1),这个是计算 e 关于模 phi1 的乘法逆元

    m:这是明文,需要进行加密的消息。m=pow(c,d,n)

    c:这是密文,通过使用公钥对明文进行加密得到。密文的加密是c = pow(m,e,n)
'''

解得,flag{Y0ung_meiyou_xiaojj}
请添加图片描述

ez-misc

看到一推01,试了下,是01转图片,
请添加图片描述

我用了随波逐流转的,
请添加图片描述

扫一下得到密码,hit_k1sme4_4_fun
请添加图片描述

将flag文件加上zip后缀,打开看到注释,
请添加图片描述

进制转换看到,rockyou是一个密码字典,网上可以下载,
请添加图片描述

得到密码,palomino
请添加图片描述

得到flag.txt,内容看着就像字频统计,
请添加图片描述

字频统计出flag,flag{SHyk1sme4},
请添加图片描述

message

看到一推东西,但他们的值没超出e,应该是十六进制,转ASCII试试,
SHCTF{ba978405-b1c8-847c-8e69-f62177e4c087}
请添加图片描述

Steganography

这题脑洞题,careful.jpg图片后面有隐藏信息,
请添加图片描述

解码得到,12ercs…909jk
请添加图片描述

然后从另一张图片,careful1.jpg找到信息,记住,careful1.jpg和careful.jpg是两张图片,虽然名字和图片很像,但不是同一张图片,看到careful.jpg里有五个字母,对应上面base64解码得到信息里的五个点,所以密码是:12ercsxqwed909jk
请添加图片描述

解压得到flag,flag{4d72e4f3-4d4f-4969-bc8c-a2f6f7a4292c}
请添加图片描述

可爱的派蒙捏

用010进行文件比对,看到差异,找到flag,依次将找到的字母进行拼接,复现就不想拼了,
请添加图片描述

社工

图片右下角有个隐约的qq号,查看了下,看到里面有张照片,有该人在b站的用户名,搜了下,只有一个视频,且留下评论:黄河入海,k1sme4回家,
请添加图片描述

查了下黄河入海口,是山东东营,
请添加图片描述

在东营搜万达广场,再看对面有没有学校,有个中国石油大学,flag{山东省东营市东营区_中国石油大学}
非预期:在微信搜“一家幸运好玩的店”看到对应视频,纯属运气做的时候。

也许需要一些py

打开压缩包有注释,摩斯密码解码,得到压缩包密码,密码要小写:this1sy0ukey
请添加图片描述

他flag.txt里面这个flag是错的,
请添加图片描述

将flag这个png图片恢复一下文件头,
请添加图片描述

给了一个md5值,将刚刚的flag进行md5加密发现不是这个MD5值,大胆猜测那应该就是要将“flag{pNg_and_Md5_SO_GreaT}”里面的内容进行大小写变体了,
请添加图片描述

问gpt拿脚本,

import hashlib

def generate_md5_variations(text):
    variations = []
    variations.append(text)  # 添加原始字符串到变体列表中

    # 遍历字符串的每个字符
    for i in range(len(text)):
        char = text[i]

        # 如果字符是字母,则生成大小写变体
        if char.isalpha():
            lowercase_char = char.lower()
            uppercase_char = char.upper()

            # 生成所有可能的大小写变体
            for j in range(len(variations)):
                original_variation = variations[j]
                lowercase_variation = original_variation[:i] + lowercase_char + original_variation[i+1:]
                uppercase_variation = original_variation[:i] + uppercase_char + original_variation[i+1:]

                variations.append(lowercase_variation)
                variations.append(uppercase_variation)

    # 计算每个变体的MD5值
    md5_values = {}
    for variation in variations:
        md5_hash = hashlib.md5(variation.encode()).hexdigest()
        md5_values[variation] = md5_hash

    return md5_values

# 使用示例
text = "pNg_and_Md5_SO_GreaT"
md5_values = generate_md5_variations(text)
for variation, md5 in md5_values.items():
    print(f"Variation: {variation}, MD5: {md5}")

得到正确的flag,flag{Png_AnD_md5_so_GReAt}
请添加图片描述

表里的码

这题没做出来,我是复现,题目给了一个zip压缩包,
请添加图片描述

我一开始以为是flag藏在里面会有什么编码,因为题目叫表里的码,但后来才知道是二维码,我也是才知道,这里可以将zip后缀改为xlsx后缀,直接打开,因为文件叫做3xc3l,可能是excel,所以直接改成表格类型,
请添加图片描述

有标记的地方是29*29大小的,有一些单元格是显示加粗字体的,
请添加图片描述

有一些是没有加粗的,
请添加图片描述

选中加粗,全部替换成黑色背景,得到一个二维码,
请添加图片描述

调整一下宽度,扫一下拿到flag,flag{j0k3r_1s_my_wif3}
请添加图片描述

图片里的秘密

将压缩包里的图片分离一下得到一张zdjd.jpg,
请添加图片描述

我这里用了imagein_Beta拿到水印,flag{Blind_Water_Mark!}
请添加图片描述

喜帖街

拿到一个wav文件,用AU打开,看到LeeTung,
请添加图片描述

尝试steghide,
请添加图片描述

得到一个ook编码的文本,
请添加图片描述

flag{w@v2txt_s0_Int3r3st1ng!}
请添加图片描述

奇怪的screenshot

给了一张这样的图,图片里面有flag.txt,但看不到txt里的内容,
请添加图片描述

在010看到有两个iend,可能是截图cve那个漏洞,最近做的有点多这个漏洞,不过两个iend也做过两张图叠在一起的水印图,moectf2023的,但这里不是,这里就是cve截图漏洞,
请添加图片描述

python acropalypse_png.py restore windows Screenshot.png out.png

回复图片不止这一种方法,这里我给出我的方法,github上有相关的工具,由于我是复现,我就没运行了,直接看图,
请添加图片描述

OCR识别一下,百家姓解密,flag{CVE-2023-28303-Win11-Snipping-t00l-is-n0t-Secure}
请添加图片描述

可爱的洛琪希

伪加密,解开后一推像base64的,猜测是图片转成base64,
请添加图片描述

直接在浏览器查看,data:image/png;base64,加上txt里的内容,
请添加图片描述

保存下来,但其实是一个jpg图片,因为刚刚用的是imgae/png,所以后缀才变成png,改一下后缀即可,
请添加图片描述

转换十六进制后,因为凯撒不对,在010看到key:nanian,猜测维吉尼亚,
请添加图片描述

拿到flag,flag{Roxy_daisuki!}
请添加图片描述

远在天边近在眼前

在Linux里解压的话可以直接看到flag,
请添加图片描述

在Windows解压再打开的话,会变成这样,问号会没了,
请添加图片描述

好像是算法不一样,但也可以放入010直接看到,或者不解压直接看,像这样,
请添加图片描述

flag{thI5_is_r34LlY_34sy_41rl9hT?_62356a7adfc1}
请添加图片描述

尓纬玛

这里用https://merri.cx/qrazybox/的extract工具解一下,因为直接扫出不来,
请添加图片描述

但也只能看到一部分,
请添加图片描述

左边的涂成这样,具体原理我也不太懂,这里引荐一下GhOxE9师傅的WP,GhOxE9也是一个公众号,还能查比赛,好像是三哈师傅的,这题也对应ctfshow的迅疾响应那题,
请添加图片描述

再extract一下,flag{QRcod3_has_many_kinds_of_secrets_now_yOU_KN0w_1_escEs2}
请添加图片描述

请再次对我使用社工吧

这题没解出来,真不会,flag{山东省_泰安市_新泰市_青云山}
请添加图片描述

立正

wl hgrfhg 4gNUx4NgQgEUb4NC64NHxZLg636V6CDBiDNUHw8HkapH :jdoi vl vlkw  ~xrb wd nrrT Y:

这题有点变异凯撒的感觉,通过查看flag{编码成base64的样子,找到规律,后来知道是字符分类处理,
请添加图片描述

凯撒解密后,发现好像对了一半,但又不太对,看哪个Qook,猜测正确的拼写应该是Look,猜测有可能是根据ASCII表去进行凯撒变异加密的,我一开始已经知道大写字母减8,小写字母减3,数字减5,但我没考虑它规定了范围,导致我最后解出会有其他符号,不符合base64的样子,后来才知道它是规定范围的,参考exp:

enc="wl hgrfhg 4gNUx4NgQgEUb4NC64NHxZLg636V6CDBiDNUHw8HkapH :jdoi vl vlkw ~xrb wd nrrT Y:"
enc=enc[::-1]
dict='abcdefghijklmnopqrstuvwxyz'
upper='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
num='0123456789'
flag=''
for i in enc:
	if ord(i) in range(97,123):
		flag+=chr((ord(i)-ord('a')-3)%26+ord('a'))
	elif ord(i) in range(65,91):
		flag+=chr((ord(i)-ord('A')-8)%26+ord('A'))
	elif ord(i) in range(48,58):
		flag+=chr((ord(i)-ord('0')-5)%10+ord('0'))
	else:
		flag+=i
print(flag)

我参考GhOxE9师傅的,最后将数字单独减5就好
请添加图片描述

flag{Y0U_MU57_5t4nd_uP_r1gHt_n0W}
请添加图片描述

电信诈骗

题目:你好,我是秦始皇,我并没有死,我得到了长生不老药,但是药效有副作用,现在才醒。我刚花了一年在互联网上了解现在的时代,现在我要利用我地宫第四行第七列的无敌兵马俑军队卷土重来,但是我需要启动资金,vivo50作为启动资金,待我横扫天下,封你为大将军,赏你黄金万两!
密文:050f000a7e407151537802540b747176075178027552756d0256726262627c
flag:flag{Cr42y_7hursd4y_v1v0_5o!!!}

请添加图片描述

残缺的md5

苑晴在路边捡到了一张纸条,上面有一串字符串:KCLWG?K8M9O3?DE?84S9
问号是被污染的部分,纸条的背面写着被污染的地方为大写字母,还给了这串字符串的md5码值:F0AF????B1F463????F7AE???B2AC4E6
请提交完整的md5码值并用flag{}包裹提交

问gpt拿的脚本,

import hashlib
import itertools

def replace_question_marks(string):
    question_mark_indices = [i for i, char in enumerate(string) if char == '?']
    letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    variations = list(itertools.product(letters, repeat=len(question_mark_indices)))

    replaced_strings = []
    for variation in variations:
        replaced_string = string
        for index, letter in zip(question_mark_indices, variation):
            replaced_string = replaced_string[:index] + letter + replaced_string[index+1:]
        replaced_strings.append(replaced_string)

    return replaced_strings

# 计算字符串的MD5哈希值
def calculate_md5(string):
    md5 = hashlib.md5()
    md5.update(string.encode('utf-8'))
    return md5.hexdigest()

# 测试
input_string = 'KCLWG?K8M9O3?DE?84S9'
replaced_strings = replace_question_marks(input_string)
for replaced_string in replaced_strings:
    md5_hash = calculate_md5(replaced_string)
    print(f'{replaced_string}, MD5: {md5_hash}')

暂时先写这么多了,不太想写了(bushi关键不会了)。。
请添加图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值