Wargames与bash知识

Wargames与bash知识之level0、level1

前言

无意发现一个学习bash的游戏Wargames,也有网友说是黑客训练游戏,不管是啥,只要能够学习bash就足够了。
网址:https://overthewire.org/wargames/
网页上的游戏推荐第一个游戏是:bandit,那咱们就从这个开始

bandit

Bandit Level 0

使用ssh连接bandit.labs.overthewire.org 端口:2220 用户名:bandit0 密码:bandit0 这个游戏的设计思路是套娃的思路,在level0游戏中获得level1用户bandit1的密码,用于进入level1环节,在level1环节获得用户bandit2的密码进入level2环节……,依次类推。建议最好使用的一个终端软件比如:MobaXterm,xshell等等,不然后续环节输入密码就会变得让人头疼。
ssh命令登录服务器:
ssh [email protected] -p 2220
服务器登录成功会提示很多信息,涉及权限、/tmp目录的使用及“不要……”(我不懂英文,完全看不懂这些,哈哈),建议看看这些信息,英文不好就用翻译软件也能看个差不多。
使用两个命令:ls和cat获取到密码,配置ssh准备进入level1。

bandit0@bandit:~$ ls
readme
bandit0@bandit:~$ cat readme
NH2SXQwcBdpmTEzi3bvBHMM9H66vVXjL
bandit0@bandit:~$

Bandit Level 1

进入bandit1,ls一下,然后发现第一个麻烦,一个名字是连线符“-”文件。连线符“-”在上下文中会被bash解释为标准输入、标准输出,是一个特殊占位符;具体作用根据上下文来决定。例如,在命令“ls -l”中,“-l”表示长格式输出,它会显示文件的详细信息。在这种情况下,“-”代表标准输出,即命令的输出结果。
下面使用cat – 连线符是读取标准输入。(试图读取文件“-”失败)

bandit1@bandit:~$ cat -  #连线符“-”在这为读取标准输入
dsadasdas              #这是键盘输入的字符
dsadasdas              #这行是cat的输出
dsad
dsad

读取这个文件的方法一:
使用绝对路径和相对路径告诉bash这是一个文件名为“-”的文件。

bandit1@bandit:~$ cat ./-                
rRGizSaX8Mk1RTb1CNQoXTcYZWU6lgzi
bandit1@bandit:~$ cat ~/-
rRGizSaX8Mk1RTb1CNQoXTcYZWU6lgzi
bandit1@bandit:~$ cat /home/bandit1/-
rRGizSaX8Mk1RTb1CNQoXTcYZWU6lgzi
bandit1@bandit:~$

读取这个文件的第二种方法:
我学习到的这种方法来源编写shell脚本后,用shellcheck检查脚本的一个报错:Useless cUseless cat. Consider ‘cmd < file | …’ or ‘cmd file | …’ instead.shellcheck(SC2002)。 具体参见

bandit1@bandit:~$ cat < -
rRGizSaX8Mk1RTb1CNQoXTcYZWU6lgzi
bandit1@bandit:~$ < - cat
rRGizSaX8Mk1RTb1CNQoXTcYZWU6lgzi
bandit1@bandit:~$ < - cat -
rRGizSaX8Mk1RTb1CNQoXTcYZWU6lgzi
bandit1@bandit:~$

你可能感兴趣的:(bash,linux)