引言
我们终於快完成 General Skills 了,
最後的时间我们会来解解其他六大类的题目。
之前说的 picoCTF 2019 的游戏的话,
我打算跟大家介绍游玩方式为主,
基本上题目大部分都收录在 picoGym 这个解题页面,
讲解还是会在 picoGym 进行。
General Skills / plumbing
题目先要求你连上服务器:
$ nc jupiter.challenges.picoctf.org 7480
连上後程序会输出诸如以下的资讯:
This is defintely not a flag
Not a flag either
Again, I really don't think this is a flag
Again, I really don't think this is a flag
Not a flag either
Not a flag either
Not a flag either
Not a flag either
I don't think this is a flag either
This is defintely not a flag
会输出很多很多,最後停下。
可以观察出题目应该是要我们从这堆讯息中找 flag !
刚刚的程序你可以按下 Enter ,程序就会结束。
相信你看了那麽多题了,脑中应该已经浮现那个字了吧~
就是 grep
!这题一样是 grep 题,
你可以利用 grep 先自己写写看要怎麽找 flag,
我马上公布答案:
公
布
答
案
就
在
下
面
你可能有疑问, grep 是从档案中找资讯,
但是这是 nc 耶,是程序输出的资讯,
也可以找吗?
当然可以,我们有两种方法:
管线
第一种就是管线 (pipe) ,这个我们也使用过,
grep 很常搭配管线使用,像 nc 这种情形就非常适合。
$ nc jupiter.challenges.picoctf.org 7480 | grep "pico"
你可以搜寻 pico 或是 picoC 、 picoCT 、 picoCTF 之类的都可以,
反正找的到都好,程序就会:
picoCTF{digital_plumb3r_06e9d954}
(你的 flag 後面那串编号会跟我不同,再次提醒)
然後按下 Enter 结束。
输出至档案
第二种方式就很直观,既然 grep 拿来找档案内容,
那我就把输出导到档案就好啊!
所以你也可以将程序的输出导到档案:
$ nc jupiter.challenges.picoctf.org 7480 > flag_file
然後按 Enter 结束。
维基百科: 重新导向(电脑)
>
、<
都是重新导向的符号,
>
负责把输出导向到其他地方,
<
负责将其他地方的资料流导入到程序的输入。你可以看到其实管线也是重新导向的一种,
的确也相当合理, output -> 下个 input 。
它不会有输出显示在萤幕,
这边以可以想像成,萤幕是一个「档案」,
一般情形会把输出导到萤幕这个「档案」,
你就会看到 shell 上显示结果。
现在我们将输出重导到你指定的档案,
自然萤幕就不会显示了,资讯已经导走了。
你可以看看这个档案内容:
$ cat flag_file
确认资讯的确在里面。
然後我们就可以用 grep 找出 flag :
$ grep "pico" flag_file
picoCTF{digital_plumb3r_06e9d954}
<<: Day 30 | 很像 Vue 的 AlpineJS(五): 与 Livewire 共享资料
今天来继续接着昨天的LineBot。我们昨天讲到,我们可以使用ngrok来让程序连上公开网路,也就是...
昨天测试完API的第一步之後, 我突然想到我还没说视觉化平台的整个规划, 今天就来谈谈这整个专案的规...
前言 通常我们会希望服务器主机开机後,就立即上线服务客户,这项要求对 TabPy Server 也不...
MLOps除了ML之外,另一部分则是DevOps(develop operations)。事实上,技...
在fragment里面使用元件 常常在写程序时会遇到再fragment抓不到元件的事情 用这个方式就...