DinestingDocumentation
Digesting Documentation
pwn.college的Linux Luminarium中Digesting Documentation模块的简单wp
Learning From Documentation
按照题目上写的,把 –giveflag 当成/challenge/challenge的参数
1 | /challenge/challenge --giveflag |
即可
Learning Complex Usage
首先根据关卡描述,我们了解到了有时候我们的参数也需要一个参数
例如题上说的打印关卡描述
1 | /challenge/challenge --printfile /challenge/DESCRIPTION.md |
–printfile是/challenge/challenge的参数,/challenge/DESCRIPTION.md又是 –printfile的参数
会了之后,我们进入工作区,在根目录发现了flag文件
1 | /challenge/challenge --printfile /flag |
即可
Reading Manuals
根据题目描述,要看challenge的手册
1 | man challenge |
在DESCRIPTION模块中 我们能看到如下
–owvsta NUM
print the flag if NUM is 403
那么答案显而易见
1 | /challenge/challenge --owvsta 403 |
Searching Manuals
根据题目描述,先看challenge的手册页
1 | man challenge |
会发现里面有很多东西 所以我们要使用/来搜索
1 | /flag |
即可看到
–urgflxq
This argument will give you the flag!
之后运行即可
1 | /challenge/challenge --urgflxq |
另一种思路
因为刚开始忘记怎么切换下一个搜索结果了,就用了grep命令来去掉了错误的参数
1 | man challenge | grep -v "A neat argument, but not the right one." |
同样也可以得到答案
Searching For Manuals
这道题是教我们man的高级用法,需要在man man中查看。
但是对于我们非英语母语的人来讲,纯英文的手册页确实是一大挑战。
这时我们就要善于利用其他工具了。具体见我随后的文章
那么假设我们已经读懂了man的高级用法,就知道要使用man -k
1 | man -k challenge |
这时就有
fzcpjlmvdc (1) - print the flag!
运行即可
1 | /challenge/challenge --fzcpjl 847 |
Helpful Programs
这道题是教我们 –help/ -h的用法
按照题意
1 | /challenge/challenge -h |
有
-g GIVE_THE_FLAG, –give-the-flag GIVE_THE_FLAG get the flag, if given the correct value
-p, –print-value print the value that will cause the -g option to give you the flag
因此我们得知,接下来要这样做
1 | /challenge/challenge -p |
The secret value is: 825
1 | /challenge/challenge -g 825 |
Correct usage! Your flag: pwn.college{YPueGCGKy8SJ25FlNkGQvnkxJ1y.ddjM4QDL5UDM5czW}
Help for Builtins
在这个题目中,challenge是内置的命令,也就是说按照题意我们要这样
1 | help challenge |
–secret VALUE prints the flag, if VALUE is correct
1
2 You must be sure to provide the right value to --secret. That value
is "gjLVZq9_".
1 | challenge --secret gjLVZq9_ |
即可