山河CTF2023

很菜,对吧;w;

刚入门的时候的wp,很稚嫩,直接放上来不改了,也算是个回忆吧:)

题解

一、Misc

1.真的签到

按照题目提示操作,得出flag:flag{Welc0me_tO_SHCTF2023}

2.签到题

下载附件,打开后发现这串字符:Wm14aFozdDBhR2x6WDJselgyWnNZV2Q5

根据文件名提示是base编码,百度一查,不像是base128

果不其然,是base64*2,在两遍base64解码后得出flag:flag{this_is_flag}

3.Message

下载附件,得到:

0001000D91683106019196F40008C26211002072B975915730671B54114F60000A000A592982B15C065265843D8A938A00000A000A5E8A9AA453D883525730000A000A91527CBE518D6E1751656CEA75D5000A000A6C899ED852305BF94E0D8D77000A000A8FD94E0053CC624B535191195230002062B14F4F4F6000530048004300540046007B00620061003900370038003400300035002D0062003100630038002D0038003400370063002D0038006500360039002D006600360032003100370037006500340063003000380037007D

看着像是16进制,先转换个试试,结果如下图,将可用字符手动提取,得到flag


二、Web

1.飞机大战

首先尝试手打,技术太菜,还是想法子修改分数

而后尝试直接修改网页分数和js的判断语句,没用,

再次尝试抓包,并没有发现传输分数的语句

在漫长的思考和百度后,决定将文件保存到本地,删除99999以下的判断语句,修改99999以上的判断语句的数值,而后重开一把,拿到 flag:flag{20c78c51-5217-4d3b-b2c2-f3b0e74a422b}

2.babyRCE

拿到题目后学习了一点点php,参考了一些教程,判断出其过滤了一些字符

尝试ls

看到有个flag.php,尝试 uniq${IFS}fl$@ag.php

页面并无显示,查看源码:

看到一个flag,但是并没有用

后再尝试uniq${IFS}/fl$@ag,拿到flag:

flag{5c7cbffb-ddcd-4283-94a6-16dc697bd400}

3.生成你的邀请函吧~

根据提示 使用post json请求

得到flag

4.登录就给flag

首先尝试sql注入,水平太菜,失败)

而后尝试绕过之类的办法,不行;w;

再然后懒得找字典直接用bp爆破了admin和root两个账户,没用

最后在安装DVWA时看到默认账户密码是admin和password,突发奇想

登录成功……………………


三、Crypto

1.凯撒大帝

下载附件,得到:pvkq{mredsrkyxkx}

显然是凯撒密码

随便弄个脚本,得到flag

2.进制

好熟悉的进制,但不知道加密了几层

3636366336313637376236313638363636623661366336383662363136383764

根据题目提示是个进制题,而且加密不止一层

看起来像是16进制,转换两遍得到flag:flag{ahfkjlhkah}

3.残缺的md5

根据提示弄了个脚本将其补全,运行得到flag:flag{f0af1443b1f463eafff7aebb8b2ac4e6}

4.Ook

下载附件得到:

Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.

Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook.

Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.

Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook.

Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook.

Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook! Ook! Ook! Ook!

Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook. Ook.

Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook.

Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook.

Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook.

Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.

Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook!

Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!

Ook! Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook!

Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!

Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook. Ook. Ook.

Ook! Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook. Ook.

Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.

Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook.

Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook.

Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook?

Ook.

百度搜索得知这是一种编码方式,使用工具解码得到flag

5.熊斐特

熊斐特博士发现了一种新的密码。

uozt{zgyzhs xrksvi}

百度得知这是埃特巴什码

解码得:flag{atbash cipher}

6.迷雾重重

题目描述:

morse?ASCII?

密文:

0010 0100 01 110 1111011 11 111 010 000 0 001101 00 000 001101 0001 0 010 1011 001101 0010 001 10 1111101

显然是个摩斯密码,解码得到:flag{morse_is_very_fun}

7.难言的遗憾

题目描述:

我们本可以早些进入信息化时代的,但是清政府拒不采纳那份编码规则。 (注:flag为中文,使用flag{}包裹提交)

密文:

00011131000813317559242220531432760965007181064

初看没有什么头绪,那么,百度,启动!

百度搜索得知,这是中文电码

而后搜索解码工具,一一解码得出flag

8.小兔子可爱捏

题目描述:宇宙的终极答案是什么?

U2FsdGVkX1/lKCKZm7Nw9xHLMrKHsbGQuFJU5QeUdASq3Ulcrcv9

你可能会需要一把钥匙,钥匙就是问题的答案。

熟悉科幻的人都知道有个知名的数字“42”,他是某著名科幻小说中的宇宙终极答案,而后带着42尝试各种加密,最终成功使用rabbit解出flag(刚刚写wp才发现题目名字就提示了加密方式)

9.what_is_m

下载附件得到一个python文件

刚开始百思不得其解,直到百度看到一篇文章,里面用了long_to_bytes这个函数,恍然大悟,运行得出flag

10. really_ez_rsa

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from Crypto.Util.number import getPrime, bytes_to_long

e = 65537

m = b''

p = getPrime(128)

q = getPrime(128)

n = p * q

m = bytes_to_long(m)

c = pow(m, e, n)

print("p =", p)

print("q =", q)

print("c =", c)

print("e =", e)

\# p = 217873395548207236847876059475581824463

\# q = 185617189161086060278518214521453878483

\#c=6170206647205994850964798055359827998224330552323068751708721001188295410644

\# e = 65537

通过观察代码得出flag就是m的明文,c是m的e次方除余n,pqce题目都已给出,只需逆运算后longtobytes即可

11.黑暗之歌

⠴⡰⡭⡳⠴⡰⡭⡰⡷⡲⡢⡩⡭⡡⠯⡩⡭⡡⡺⡩⡭⡡⠳⡩⡭⡡⡺⡩⡭⡡⡶⡩⡭⡡⡶⡩⡭⡡⡲⡩⡭⡡⡺⡩⡭⡡⠯⡩⡧⡊⡢⡩⡭⡡⠯⡩⡭⡡⡺⡃⡰⠫⡋⡚⡲⡍⡋⡮⠴⡰⡭⡶⡷⡲⡢⡩⡧⡊⡢⡃⡴⡵⡋⡁⡬⡵⡋⡁⡬⡵⡋⡁⡬⡳⡋⠲⠴⡯⡃⡗⠴⡰⡭⡴⠴⡰⡭⡶⡷⡲⡢⡩⡧⡊⡢⡩⡭⡡⡺⡩⡭⡡⡺⡩⡭⡡⠳⡩⡧⡊⡢⡩⡭⡡⠯⡩⡧⡊⡢⡃⡴⡵⡋⡚⡱⠫⡋⡚⡱⠫⡋⡚⡲⠵⠲⡺⠰⠽

打开后发现是盲文,解码得

4pms4pmpwrbima/imazima3imazimavimavimarimazima/igJbima/imazCp+KZrMKn4pmvwrbigJbCtuKAluKAluKAlsK24oCW4pmt4pmvwrbigJbimazimazima3igJbima/igJbCtuKZq+KZq+KZrz0=

像是base64,解码得

♬♩¶♯♬♭♬♫♫♪♬♯‖♯♬§♬§♯¶‖¶‖‖‖¶‖♭♯¶‖♬♬♭‖♯‖¶♫♫♯=

是音乐符号,解码得

flag{b2cc-9091-8a29}


四、Pwn

1.nc

kali如图操作即可(

2.hard nc

先显示所有文件夹 而后cat .gift获得前半个flag

而后进入gift2 cat flag2得到后半个flag的base64编码,解码后得到flag:flag{84b9ebe3-0032-4e2b-a311-280fa6a7488e}