每个用户都有自己的主目录,通常位于文件系统的 /home 下。
在 dojo 中,你是 hacker 用户,你的主目录是 /home/hacker。
用户通常会把大多数个人文件存放在主目录中。
学习 pwn.college 的过程中,你也会把大多数解题文件保存在这里。
通常,shell 会话启动时,会把主目录设为当前工作目录。
看看初始提示符:
hacker@dojo:~$
提示符中的 ~ 表示当前工作目录,其中,~ 是 /home/hacker 的简写。
Bash 提供并使用这个简写,是因为你大部分时间都会在主目录中操作。
因此,当 bash 在参数开头遇到符合路径写法的 ~ 时,就会将它展开为你的主目录。
来看下面的例子:
hacker@dojo:~$ echo LOOK: ~
LOOK: /home/hacker
hacker@dojo:~$ cd /
hacker@dojo:/$ cd ~
hacker@dojo:~$ cd ~/asdf
hacker@dojo:~/asdf$ cd ~/asdf
hacker@dojo:~/asdf$ cd ~
hacker@dojo:~$ cd /home/hacker/asdf
hacker@dojo:~/asdf$
注意,~ 展开后是一个绝对路径,而且只有开头的 ~ 会被展开。
例如,~/~ 会展开为 /home/hacker/~,而不是 /home/hacker/home/hacker。
一个小知识:cd 的默认目标就是你的主目录:
hacker@dojo:~$ cd /tmp
hacker@dojo:/tmp$ cd
hacker@dojo:~$
现在轮到你动手了!
在这个挑战中,/challenge/run 会将 flag 的副本写入你在命令行参数中指定的文件,但必须满足以下条件:
- 参数必须是绝对路径。
- 路径必须位于你的主目录内。
- 展开之前,参数的长度不得超过三个字符。
再次提醒,你必须将路径作为参数传给 /challenge/run,如下所示:
hacker@dojo:~$ /challenge/run YOUR_PATH_HERE
通过 SSH 连接
在
个人设置 中绑定你的 SSH 公钥后,使用以下命令连接:
ssh hacker@dojo.pwn.college