Skip to content

Commit f948b3b

Browse files
USTC Hackergame 2022taokytl2centsvolltinRoarcannotprogramming
committed
Squash into one commit
Co-authored-by: taoky <[email protected]> Co-authored-by: tl2cents <[email protected]> Co-authored-by: Jiyan He <[email protected]> Co-authored-by: V1me <[email protected]> Co-authored-by: 忧郁沙茶 <[email protected]> Co-authored-by: Yanbing Zhao <[email protected]> Co-authored-by: petergu <[email protected]> Co-authored-by: zzh1996 <[email protected]> Co-authored-by: AvavaAYA <[email protected]> Co-authored-by: Elsa <[email protected]> Co-authored-by: Libre Liu <[email protected]> Co-authored-by: elliot <[email protected]> Co-authored-by: Mingliang Zeng <[email protected]> Co-authored-by: Long Deng <[email protected]> Co-authored-by: emc2314 <[email protected]> Co-authored-by: xie_q <[email protected]>
0 parents  commit f948b3b

File tree

2,011 files changed

+298564
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,011 files changed

+298564
-0
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
.DS_Store
2+
__pycache__/

LICENSE.md

+178
Large diffs are not rendered by default.

README.md

+92
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
# hackergame2022-writeups
2+
3+
本文档收集整理了中国科学技术大学第九届信息安全大赛的官方与非官方题解。
4+
5+
该仓库仍在活跃更新中,欢迎各位选手以 Pull Request 的形式提交自己的 write-up(players 目录下以自己的昵称创建新文件夹,并在本文件的「来自选手」部分增加一行)。
6+
7+
若大家对本题解有任何疑问或改进建议,欢迎 [提 issue](https://github.com/USTC-Hackergame/hackergame2022-writeups/issues/new)
8+
9+
比赛平台:[https://hack.lug.ustc.edu.cn/](https://hack.lug.ustc.edu.cn/)
10+
11+
比赛时间:北京时间 2022 年 10 月 22 日 中午 12:00 ~ 10 月 29 日 中午 12:00(共七天)
12+
13+
## 目录
14+
15+
### 官方题解
16+
17+
部分题目需要使用 token。Token 可以从比赛平台注册获取,也可以使用 `1:MEUCIQC24dB6B24/LDr2O+4cifbzOEFDbkXg3hJIqTXuuvpa1QIgbzMM/F0uUmYIudtM6qEDvOpEHbtTZjSjTWMcA5zhnos=` 作为测试 token。
18+
19+
| 题目描述与 write-up | 文件、源代码 |
20+
| ------------------------------------------------------------ | ------------------------------------------------------- |
21+
| [签到](official/签到/README.md) | - |
22+
| [猫咪问答喵](official/猫咪问答喵/README.md) | - |
23+
| [家目录里的秘密](official/家目录里的秘密/README.md) | [文件、源代码](official/家目录里的秘密/src) |
24+
| [HeiLang](official/HeiLang/README.md) | [文件、源代码](official/HeiLang/src) |
25+
| [Xcaptcha](official/Xcaptcha/README.md) | [文件、源代码](official/Xcaptcha/src) |
26+
| [旅行照片 2.0](official/旅行照片%202.0/README.md) | [文件、源代码](official/旅行照片%202.0/src) |
27+
| [猜数字](official/猜数字/README.md) | [文件、源代码](official/猜数字/src) |
28+
| [LaTeX 机器人](official/LaTeX%20机器人/README.md) | [文件、源代码](official/LaTeX%20机器人/src) |
29+
| [Flag 的痕迹](official/Flag%20的痕迹/README.md) | [文件、源代码](official/Flag%20的痕迹/src) |
30+
| [安全的在线测评](official/安全的在线测评/README.md) | [文件、源代码](official/安全的在线测评/src) |
31+
| [线路板](official/线路板/README.md) | [文件、源代码](official/线路板/src) |
32+
| [Flag 自动机](official/Flag%20自动机/README.md) | [文件、源代码](official/Flag%20自动机/src) |
33+
| [微积分计算小练习](official/微积分计算小练习/README.md) | [文件、源代码](official/微积分计算小练习/src) |
34+
| [杯窗鹅影](official/杯窗鹅影/README.md) | [文件、源代码](official/杯窗鹅影/src) |
35+
| [蒙特卡罗轮盘赌](official/蒙特卡罗轮盘赌/README.md) | [文件、源代码](official/蒙特卡罗轮盘赌/src) |
36+
| [二次元神经网络](official/二次元神经网络/README.md) | [文件、源代码](official/二次元神经网络/src) |
37+
| [惜字如金](official/惜字如金/README.md) | [文件、源代码](official/惜字如金/src) |
38+
| [不可加密的异世界](official/不可加密的异世界/README.md) | [文件、源代码](official/不可加密的异世界/src) |
39+
| [置换魔群](official/置换魔群/README.md) | [文件、源代码](official/置换魔群/src) |
40+
| [光与影](official/光与影/README.md) | [文件、源代码](official/光与影/src) |
41+
| [矩阵之困](official/矩阵之困/README.md) | [文件、源代码](official/矩阵之困/src) |
42+
| [你先别急(暂缺)](official/你先别急/README.md) | [文件、源代码](official/你先别急/src) |
43+
| [链上记忆大师](official/链上记忆大师/README.md) | [文件、源代码](official/链上记忆大师/src) |
44+
| [片上系统](official/片上系统/README.md) | [文件、源代码](official/片上系统/src) |
45+
| [传达不到的文件](official/传达不到的文件/README.md) | [文件、源代码](official/传达不到的文件/src) |
46+
| [看不见的彼方](official/看不见的彼方/README.md) | [文件、源代码](official/看不见的彼方/src) |
47+
| [量子藏宝图](official/量子藏宝图/README.md) | [文件、源代码](official/量子藏宝图/src) |
48+
| [《关于 RoboGame 的轮子永远调不准速度这件事》](official/《关于%20RoboGame%20的轮子永远调不准速度这件事》/README.md) | [文件、源代码](official/《关于%20RoboGame%20的轮子永远调不准速度这件事》/src) |
49+
| [壹...壹字节?](official/壹...壹字节?/README.md) | [文件、源代码](official/壹...壹字节?/src) |
50+
| [企鹅拼盘](official/企鹅拼盘/README.md) | [文件、源代码](official/企鹅拼盘/src) |
51+
| [小 Z 的靓号钱包](official/小%20Z%20的靓号钱包/README.md) | [文件、源代码](official/小%20Z%20的靓号钱包/src) |
52+
| [火眼金睛的小 E](official/火眼金睛的小%20E/README.md) | [文件、源代码](official/火眼金睛的小%20E/src) |
53+
| [evilCallback](official/evilCallback/README.md) | [文件、源代码](official/evilCallback/src) |
54+
55+
56+
57+
### 来自选手
58+
59+
| write-up | 备注 | 包含题目 |
60+
| - | - | - |
61+
| [mcfx](players/mcfx/wp.md) | (TBD) | 除壹...壹字节?和 evilCallback 以外的全部题目 |
62+
63+
## 其他资源
64+
65+
[Hackergame 2022 幕后工作人员](https://hack.lug.ustc.edu.cn/credits/)
66+
67+
[搞笑 Flag & 花絮(暂缺)](./behind-the-scenes/README.md)
68+
69+
[纪念衫(暂缺)](./T-shirt/README.md)
70+
71+
### 历年题解
72+
73+
- [中国科学技术大学第八届信息安全大赛(Hackergame 2021)题解](https://github.com/USTC-Hackergame/hackergame2021-writeups)
74+
- [中国科学技术大学第七届信息安全大赛(Hackergame 2020)题解](https://github.com/USTC-Hackergame/hackergame2020-writeups)
75+
- [中国科学技术大学第六届信息安全大赛(Hackergame 2019)题解](https://github.com/ustclug/hackergame2019-writeups)
76+
- [中国科学技术大学第五届信息安全大赛(Hackergame 2018)题解](https://github.com/ustclug/hackergame2018-writeups)
77+
- [中国科学技术大学第四届信息安全大赛(Hackergame 2017)题解](https://volltin.gitbooks.io/hackergame2017-writeup/)
78+
79+
### 知乎问题
80+
81+
- [知乎:参加中国科学技术大学第九届信息安全大赛(Hackergame 2022)是怎样一种体验?](https://www.zhihu.com/question/561919414)
82+
- [知乎:参加中国科学技术大学第八届信息安全大赛(Hackergame 2021)是怎样一种体验?](https://www.zhihu.com/question/492960717)
83+
- [知乎:参加中国科学技术大学第七届信息安全大赛(Hackergame 2020)是怎样一种体验?](https://www.zhihu.com/question/428140079)
84+
- [知乎:参加中国科学技术大学第六届信息安全大赛(Hackergame 2019)是怎样一种体验?](https://www.zhihu.com/question/351947330)
85+
- [知乎:参加中国科学技术大学第五届信息安全大赛(Hackergame 2018)是怎样一种体验?](https://www.zhihu.com/question/297850153)
86+
- [知乎:参加中科大第四届信息安全大赛是一种怎样的体验?](https://www.zhihu.com/question/67050288)
87+
88+
## 版权声明
89+
90+
Copyright (c) USTC Hackergame 2022(中国科学技术大学第九届信息安全大赛组委会). All rights reserved.
91+
92+
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="知识共享许可协议" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" /></a><br />本作品题解部分与未特别标注的源代码部分采用<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议</a>进行许可,特别标注的部分以标注的许可协议进行许可。

official/Flag 的痕迹/README.md

+67
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# Flag 的痕迹
2+
3+
题解作者:[taoky](https://github.com/taoky)
4+
5+
出题人、验题人、文案设计等:见 [Hackergame 2022 幕后工作人员](https://hack.lug.ustc.edu.cn/credits/)
6+
7+
## 题目描述
8+
9+
- 题目分类:web
10+
11+
- 题目分值:150
12+
13+
小 Z 听说 Dokuwiki 配置很简单,所以在自己的机器上整了一份。可是不巧的是,他一不小心把珍贵的 flag 粘贴到了 wiki 首页提交了!他赶紧改好,并且也把历史记录(revisions)功能关掉了。
14+
15+
「这样就应该就不会泄漏 flag 了吧」,小 Z 如是安慰自己。
16+
17+
然而事实真的如此吗?
18+
19+
> (题目 Dokuwiki 版本基于 2022-07-31a "Igor")
20+
21+
## 题解
22+
23+
同样,这道题 idea 是 @zzh1996 的,我负责 implementation。
24+
25+
DokuWiki 是非常轻量级的 wiki 解决方案:没有数据库,相关的数据全部放文件里面由文件系统管理。因为容易配置而比较流行。
26+
27+
所以我们先本地配置试试,摸一下 `dokuwiki` 吧:
28+
29+
```
30+
sudo apt install dokuwiki
31+
```
32+
33+
(我比较懒,这么装不是最新的,但是作为展示的 demo 足够了)
34+
35+
我们看到作为管理员,可以禁用掉 DokuWiki 的一些 "actions",这其中就包含了「最近修改」和「历史记录」。
36+
37+
![DokuWiki "Disable actions" in Configuration Manager](assets/admin_actions.png)
38+
39+
再摸摸可以发现,上面这两个功能长这个样子:
40+
41+
![Recent changes](assets/action_recent.png)
42+
43+
![Revisions](assets/action_revisions.png)
44+
45+
可以注意到,不同的 action 对应 URL 参数里面不同的 "do"。再探索一下,就能看到有个 action,似乎不在管理员 UI 的禁用列表里面:
46+
47+
![Diff](assets/action_diff.png)
48+
49+
Diff。而且这个页面可以看到所有的修改记录。
50+
51+
让我们试试吧:
52+
53+
![Diff on server](assets/server_diff.png)
54+
55+
点击下面的下拉框,选中以前的记录,结果就出来了。
56+
57+
### 附注
58+
59+
为了让 DokuWiki 在只读环境中运行,并且不随便放 session 干扰其他题目,我对 DokuWiki 的源代码做了一些修改,参考 src 目录。相关的修改以 GPLv2 协议发布。
60+
61+
## 出题思路
62+
63+
本节作者:[zzh1996](https://github.com/zzh1996)
64+
65+
这道题的出题思路是我提供的。
66+
67+
我的个人主页就是使用 DokuWiki 搭建的。(在写这段话时我暂时把它下线维护了,等我有时间处理一下再上线。)我关掉了历史记录功能,并且确认了设置页面该关的都关了,但是没想到被细心的某拼盘出题人通过 diff 功能翻出来了一些黑历史,于是就想出成一道题。
124 KB
Loading
Loading
Loading
Loading
90.6 KB
Loading
+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
FROM php:8.1.11-fpm-alpine3.16
2+
3+
COPY ./php/php.ini /usr/local/etc/php/conf.d/
4+
# COPY ./dokuwiki /mnt/app
5+
# RUN chown -R root:root /mnt/app && chmod -R 555 /mnt/app
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
version: '2'
2+
services:
3+
php:
4+
build:
5+
context: .
6+
dockerfile: Dockerfile
7+
volumes:
8+
- ./dokuwiki:/mnt/app:ro
9+
restart: always
10+
cpus: 1
11+
mem_limit: 4g
12+
memswap_limit: 4g
13+
pids_limit: 128
14+
web:
15+
image: nginx:1.23.1
16+
ports:
17+
- "15004:80"
18+
depends_on:
19+
- php
20+
volumes_from:
21+
- php
22+
volumes:
23+
- ./nginx:/etc/nginx/conf.d:ro
24+
restart: always
25+
cpus: 1
26+
mem_limit: 4g
27+
memswap_limit: 4g
28+
pids_limit: 128

0 commit comments

Comments
 (0)