1、zip
Alice 把 flag 用你的 token 压缩并加密成了一个 zip 压缩包,并且希望你提供 flag 来解压这个压缩包。如果解压成功, Alice 就会告诉你 flag 的内容,但好像 Alice 的代码实现有些问题?
你可以 下载题目附件
你可以 打开网页终端 或者通过命令 nc prob03.contest.pku.edu.cn 10003
连接到题目
解析:
题目要求用户输入一个和 token 前 64 字节相同的字符串作为密码,然后程序会压缩并加密
flag.
再要求用户输入一个前 5 字节为 flag{ 的密码解压 zip,输出解压后的文件,也就是用户想
拿到的 flag.
参考这个,如果密码超过了 64 字节,会预先做一个 sha1,所以只需要暴力枚举一个后缀,
使得 token 前 64 字节拼上这个后缀的 sha1 前 5 个字节是 flag{ 即可通过此题.
由于 7z 输入密码会从 pty 读,所以是用 fakepty 调用的 7z,这可能导致包含一些控制字符的
sha1 无法通过,
在 4060 上用 hashcat 大概期望需要 10 分钟碰撞出一个能跑通的解.
由于用到了 pty,所有又有了另一种通过的方法,直接在 token 和 flag{ 后都拼上
"\x15anypwd" , "\x15" 在 pty 中是直接清空前面的输入,所以 7z 拿到的密码就是 anypwd
了.
2、Apache
Apache会有什么问题?
你可以 访问题目网页 环境控制
你可以 下载题目附件
解析:
根据附件得知 FROM httpd:2.4.49-buster, 存在 CVE-2021-41773 ,使用路径穿越的方式
RCE获得flag。