第九届御网杯网络安全大赛线下半决赛Writeup
赛查查
2025年8月27日 18:35
福建
在小说阅读器读本章
去阅读
以下文章来源于XiaoJsec
,作者XiaoJsec
XiaoJsec
.
「XiaoJsec的安全小屋」是专注于网络安全攻防实战的笔记库,分享CTF赛题精讲、SRC漏洞挖掘、工具开发教程与最新漏洞复现,旨在解析攻防思维、拆解实战路径,助你构建扎实的安全工程能力。
一、Web\_Writeup
1、Web-IP绕过
打开实例,下载附件源码
代码审计
判断了HTTP\_CLIENT\_IP的传入是否是1.2.3.4
用户名为admin,密码为admin123
<?php
header('Content-Type: text/html; charset=utf-8');
$cip = $_SERVER['HTTP_CLIENT_IP'];
if($cip != \"1.2.3.4\") {
echo\"非法IP地址,只有1.2.3.4才能访问!\";
exit();
}
$username = $_POST['username'];
$password = $_POST['password'];
if($username === \"admin\" && $password === \"admin123\") {
echo\"登录成功!\";
$flag = file_get_contents(\"../../../../flag.txt\");
echo$flag;
} else {
echo\"用户名或密码错误!\";
}
?>
打开burp抓包 然后添加HTTP头Client-IP: 1.2.3.4
image-20250817213056596
得到flag
flag{HNCTF219832818s}
2、Web-命令执行
打开实例
发现需要进行代码审计
审计得出:
在进行操作时,可考虑使用 base64\_encode 或 base64\_decode,同时要额外留意服务器是否允许使用 file\_get\_contents。需满足以下条件:一是 GET 参数 cmd 中必须包含子串 \"base\"(不区分大小写),但禁止包含如 system、exec、flag、php、cat 等黑名单关键词;二是因为文件名 flag.php 包含禁止词 flag 和 php,所以要避免在 cmd 中直接出现这些词;三是可借助 Base64 编码 / 解码来绕过过滤。
Payload:
?cmd=$a=base64_decode(%27ZmxhZy5waHA=%27);echo%20base64_encode(file_get_contents($a));
image-20250817213150288
base64解码
image-20250817213200069
得到flag
flag{HNCTFPDSGYJSJNB666}
二、Misc-Writeup
1、文件隐写02
下载附件,解压得到一个jpg图片
拖入winhex
image-20250817213312680
666c61677b7761736a5f303130315f7a6968616f7d
得到一串字符然后进行16进制转文本
image-20250817213336759
得到flag
flag{wasj_0101_zihao}
2、次数还原
image-20250817213407559
分析每个字符频率的出现次数,进行排序后应该就是FLAG了
image-20250817213411959
然后进行反转
image-20250817213421808
得到flag
FLAG{B8o6han}
3、图片隐写02
下载附件
得到一半多的二维码
image-20250817213528368
底部被隐藏,那么大概率是宽高修改了。
image-20250817213536360
修改后 进行扫码
image-20250817213543851
得到一串base64编码
然后解码
image-20250817213555377
得到flag
Flag{nisp_tupian12131}
4、鼠标流量
下载附件得到一个流量分析文件
然后拖入工具
image-20250817213615442
得到flag
image-20250817213632743
flag{a3h58fw7ex}
三、Crypto\_Writeup
1、Cyport\_01
随波逐流直接得到flag
flag{829_ji87_88pk}
2、Cyport\_02
丢入随波逐流发现是社会主义核心价值观解码
image-20250817213758209
继续解码得到flag
image-20250817213811924
3、Find\_flag
下载附件解压到底一个html和js文件
打开js文件发现是混淆的MD5加密、特殊检查的js
image-20250817213900266
exp如下
a = [104, 104, 102, 120, 117, 108, 48, 75, 81, 70, 87, 73]
def build_string(index=0, current=\"\"):
if index >= len(a):
return current
return build_string(index + 1, current + chr(a[index] - 3))
s = build_string()
print(s)
image-20250817213923982
得到flag
flag{eecuri-HNCTF}
4、ez\_classical7
image-20250817213953195
先反转一下
image-20250817214000042
mtjn{PWJBOeEHLAcL67PWJ}
mtjn->flag
根据ascii码表
发现m->f 7 t->f 8 j->9 n->g 7
由此编写exp
得到flag
image-20250817214018885
def decrypt(s):
decrypted = []
shifts = [7, 8, 9]
shift_index = 0
for char in s:
if char in\"{}0123456789\":
decrypted.append(char)
continue
shift_value = shifts[shift_index % len(shifts)]
base = ord('a') if char.islower() elseord('A') if char.isupper() else0
if base:
shifted_code = (ord(char) - base - shift_value) % 26
decrypted.append(chr(shifted_code + base))
else:
decrypted.append(char)
shift_index += 1
return''.join(decrypted)
cipher = \"mtjn{PWJBOeEHLAcL67PWJ}\"
plaintext = decrypt(cipher)
print(\"解密结果:\", plaintext)
flag{HNCTFxWYEStE67HNC}
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论