(原创)2018 年全国中学生网络安全技术大赛(西电举办)解题报告 [CTF 解题报告]
Misc
1. Welcome
题目内容:
Welcome to msscstc!
This is your flag: flag{4f403810354870e07cb00b549cf577c9}
good luck && have fun!
Flag:flag{4f403810354870e07cb00b549cf577c9}
解题思路:Flag 直接在题目描述中,无需额外操作。
2. 调查问卷
Flag:flag{455472b522fd0a1e27aaa91c4033db65}
解题思路:填写完整调查问卷后,即可获取 Flag(注:提交需注意时间,避免延迟)。
Crypt
1. Crypto1
Hint:e 很小,且 e 和给出的密文段数相等。当使用不同密钥加密同一段明文时,如果 e 过小,会出现低加密指数广播攻击,请自行搜索 "RSA 低加密指数广播攻击"
Flag:FLAG{w31c0me_t0o_Xid14n_uNiv3rs1TY^^_}
解题步骤:
下载题目数据并整理格式;
根据 Hint 搜索 “RSA 低加密指数广播攻击”,参考现成代码(如:https://blog.csdn.net/xuqi7/article/details/75578414);
将代码中的session数组替换为本次题目data中的数据;
运行 Python 脚本,直接得到 Flag;
2. Crypto2
Hint:你会发现密文很短,甚至比 N 还小,这时候的加密是非常不安全的,甚至说是形同虚设的。
Flag:FLAG{XI_dd!4n}
解题步骤:
下载并整理题目给出的 C、N、E 数据;
尝试复用前一题的 RSA 解密脚本(因密文长度小于 N,加密形同虚设);
运行 Python 脚本,直接解出 Flag;
Web
1. baby start
题目描述:a very baby challenge
Hint:
文件包含漏洞,注意phpinfo.php给的信息;
talk is cheap, show me the shell.;
session.upload_progress.enabled=On;
web 目录没有写权限,tmp 目录有。
Flag:flag{4d2abd9eca3a260f8c216848c2b54710}
解题步骤:
访问phpinfo.php,确认session.upload_progress已开启,且临时文件路径为/tmp;
利用session.upload_progress的临时文件竞争特性,构造 Payload(参考网上公开 Payload),使用 Burp Suite 疯狂发包;
因 Web 目录无写权限,调整思路为 “执行命令 + 文件包含”,而非写入小马;
同时发送文件包含请求,列出服务器文件;
发现flag_u_cant_guess_this.txt,通过文件包含读取,得到 Base64 编码的 Flag;
使用 HackBar 解码 Base64,最终得到 Flag。
2. curl
题目描述:玩玩看~
题目地址:http://118.24.98.100
Hint:命令执行,有一些过滤,尝试绕过它。
Flag:flag{y0u_G3t_1t_!}
解题步骤:
根据 Hint 判断为 “curl 命令执行漏洞”,利用 Linux 反引号(`)的命令执行特性构造 Payload;
反引号内的命令会优先执行,结果拼接到 curl 请求中,服务端接收后可解析执行结果;
执行ls命令发现疑似 Flag 文件,再执行cat命令读取文件内容(内容经 Base64 编码);
解码 Base64 得到 Flag;
3. baby upload
题目描述:小明最近做了一个上传页面,你能帮他测试有没有安全问题吗?
题目地址:http://118.24.88.71/
Hint:.htaccess
Flag:flag{Bypass_f1l3_upl0ad_1s_easy}
解题步骤:
访问网站,发现 3 处上传点:前两处无上传目录反馈,第三处被disable禁用;
利用浏览器 “审查元素” 删除第三处上传框的disable属性,启用上传功能;
根据 Hint 上传.htaccess文件,配置文件解析规则(使指定后缀文件被当作 PHP 执行);
上传改后缀的大马(因小马无法用菜刀连接),确认上传成功;
用大马执行find命令列出服务器所有文件,按flag关键词搜索;
执行cat命令读取内容,得到 Flag;