赛题资源
通过网盘分享的文件:ctf御网杯
链接: https://pan.baidu.com/s/1WWGsWnPh7kcWVLHsBC957w?pwd=h9ie 提取码: h9ie
--来自百度网盘超级会员v3的分享
cry_rsa
发现题目,
进入kai,写脚本
运行结果,再加9
flag{2023326077889096388}
YWB_WEB_XFF
因为发现只有ip是2.2.2.1才算扫描成功
进入kai直接进行扫描,发现flag
Easyweb
flag{d4ek6s7kzztx}
easy签到题
Base64
R1kzRE1RWldHRTNET04yQ0dNWkRNTVJUSEFaVElNWlhHTVlUTU5KVEdBWkVJTVpUR1laVEdPSldHRVpFSU1aV0dZMkRHTUpXR1laRUlNWlVHWVlUR05KVEc0WkVJTVpaR000REdNQlRHTVpUTU1aU0dNWVRHTkpURzQzREtNWlRHWTNET1JBPQ==
GY3DMQZWGE3DON2CGMZDMMRTHAZTIMZXGMYTMNJTGAZEIMZTGYZTGOJWGEZEIMZWGY2DGMJWGYZEIMZUGYYTGNJTG4ZEIMZZGM4DGMBTGMZTMMZSGMYTGNJTG43DKMZTGY3DORA=
Base 32
666C61677B32623834373165302D336339612D366431662D346135372D3938303336323135376533667D
Base 16
flag{2b8471e0-3c9a-6d1f-4a57-980362157e3f}
Gift
数学中π的常见象征是“派”(pie),与“π”谐音(英文中“pie”发音与“π”相同)。
结合“分成4份”的提示,散落的一份是π/4,完整的礼物是π(即“派”)。. 凯撒密码加密
明文:pie
凯撒偏移量5:
p → u
i → n
e → j
密文:unj
Flag格式
题目要求用凯撒密码加密后的结果提交,因此最终答案为:
flag{unj}
Ez_xor
原始输入的 cipher 列表格式错误(连字符分隔),修正为逗号分隔的十六进制数值列表。
代码,直接运行
cipher = [0x5f, 0x55, 0x58, 0x5e, 0x42, 0x71, 0x7a, 0x6d, 0x7f, 0x48, 0x4e, 0x5c, 0x78, 0x6a, 0x7d, 0x08, 0x0b, 0x01, 0x44]
key = 0x39 # 十进制 57
plain = ''.join([chr(b ^ key) for b in cipher])
print(plain)
得出flag
flag{HCTFqweASD128}
YWB_WEB命令执行过滤绕过
发现存在flag.nisp
从var_dump(file("flag.php"))的输出中,我们获得了重要线索:
array(4) {
[0] => string(4) * string(31) *$filename = "/tmp/flag.nisp"; *
[2] => string(48) *$content = trim(file_get_contents($filename)); *
[3] => string(2) *?>* }
这表明flag实际上存储在/tmp/flag.nisp文件中,而不是flag.php!
既然flag实际存储在/tmp/flag.nisp,我们应该直接读取这个文件:
我们直接进行读取
47.105.113.86:40002/?cmd=readfile("/tmp/flag.nisp");
发现flag
flag{dnu3stfgjy61}
被折叠的显影图纸
解压文件,发现flag.xls文件
发现有密码保护,打不进开文件
flag{Off! c3_32$y_Kr@kK3d}
#光隙中的寄生密钥
解压文件,发现一张图片
Foremost binkwalk这两个工具都可以使用,来提取文件信息
我们将密码进行爆破,需要下载工具ARCHPR
点击是的话,可以随意修改爆破信息路径
成功破解,发现一串编码
5a6d78685a337379566d516a545773324a5842534f58705949584e4266513d3d
flag{2vdtMk6%pR9zX ! sA}
套娃
打开文件发现是后缀为.xlsx
我们把后缀改成.zip文件,进行解压
发现一个.txt文件
我们再把这个.txt后缀文件改成.zip文件
进行解压,发现一串文件
用浏览器打开这个文件
发现把我框选起来的可以合成一个flag值
Flag{HNCTFDKKBKODtK}
Easy_misc
解压文件发现一串编码
继续解码
发现flag值
ASCLL——base64——base58——rot13
flag{HNCTFJVoKuDJmKjBb}
Ez_picture
解压文件
我们把刚才可疑的RGB值试一下
解密成功,发现一张图片
f1agIHNCTFSduQPKRiYt0}
Ez_base
解压文件发现.txt文件,垃圾邮件
在线网站
注意页面跳转是正常操作,说明正在加载
复制文本内容
ZmxhZ3tITkNURlpJaUZXQTlmUko2VEZ9
f1ag {HNCTFZIiFWA9fRJ6TF}
#草甸方阵的密语
解密方法:栅栏解密+凯撒解密
解压文件,发现.exe文件
栅栏fence解码:
因数[2, 4, 8]:
分为2栏时,解密结果为:k{ylqYxmfmwylfn}
分为4栏时,解密结果为:kf{mywlyqlYfxnm}
分为8栏时,解密结果为:kqfl{Ymfyxwnlmy}
2栏解密结果
4栏解密结果
8栏解密结果
f1ag {Thatsright}
Baby_rsa
打开压缩文件,发现一个.exe .txt
根据题目要求,写了一串python代码,进行执行,发现flag值
from Crypto.Util.number import long_to_bytes
import gmpy2
from sympy import nextprime
N = 12194420073815392880989031611545296854145241675320130314821394843436947373331080911787176737202940676809674543138807024739454432089096794532016797246441325729856528664071322968428804098069997196490382286126389331179054971927655320978298979794245379000336635795490242027519669217784433367021578247340154647762800402140321022659272383087544476178802025951768015423972182045405466448431557625201012332239774962902750073900383993300146193300485117217319794356652729502100167668439007925004769118070105324664379141623816256895933959211381114172778535296409639317535751005960540737044457986793503218555306862743329296169569
e = 65537
c = 4504811333111877209539001665516391567038109992884271089537302226304395434343112574404626060854962818378560852067621253927330725244984869198505556722509058098660083054715146670767687120587049288861063202617507262871279819211231233198070574538845161629806932541832207041112786336441975087351873537350203469642198999219863581040927505152110051313011073115724502567261524181865883874517555848163026240201856207626237859665607255740790404039098444452158216907752375078054615802613066229766343714317550472079224694798552886759103668349270682843916307652213810947814618810706997339302734827571635179684652559512873381672063
# 计算 q 的近似值
q_approx = gmpy2.isqrt(N)
# 从 q_approx 开始寻找 q
q = q_approx
while True:
if N % q == 0:
p = N // q
break
q = nextprime(q)
# 计算 phi(N)
phi = (p - 1) * (q - 1)
# 计算私钥 d
d = gmpy2.invert(e, phi)
# 解密
m = pow(c, int(d), N)
# 转换为字节
flag = long_to_bytes(m)
print(flag)
flag{5c9c885c361541e0b261f58b61db8cec}
查看附件
在线文本替换工具链接
Ez_js
解压之后发现文件,用浏览器打开
右键查看页面源代码,反倒源代码最底部,发现flag值
flag {HCTF qweIOP164}
Sign in
在 Windows 下对文件进行“脱壳”(Unpacking)通常是指去除软件的保护壳(如压缩壳、加密壳或反调试壳),以恢复原始的可执行文件。
解压文件
.exeinfo查壳,发现有壳,使用upx进行脱壳
exteinfo工具下载
注意下载的时候把安全关了,因为软件会显示携带病毒
在kali中进行脱壳
发现没有upx字符,脱壳成功
进入这个网站,将脱壳后的文件拖进去
将这个框里面的代码让ai分析一下
提取密钥和密文RC4解密
从而得出flag
flag{rc4_1s_w34k_wh3n_k3y_r3us3!!}
Canary
漏洞分析
提示一下解体思路
栈溢出点:main函数中的__isoc23_scanf("%39s", &s)未限制输入长度,可溢出缓冲区。
Canary机制:程序使用随机数种子生成的rand()值作为Canary,若种子泄露则可预测Canary。
关键泄露:选项2会输出My secret is %016lx,泄露当前随机种子(srand(seed)的seed)。
控制流劫持:覆盖返回地址跳转到system("/bin/sh")或直接读取/home/ctf/flag
完美,撒花