本文最后更新于:星期三, 一月 2日 2019, 3:47 下午
这是一个让人熟悉linux操作的一个wargame,挺有意思的 网站
bandit0
直接ssh连上去,cat readme 拿到下一关的密码
密码:boJ9jbbUNNfktd78OOpsqOltutMc3MY1
bandit1
这一关它将密码藏在 - 文件中,以’-‘作为文件名,代表标准输入流或者标准输出流,要显示 ‘-‘文件的内容
需要用 cat ./- 来打印出来
密码:CV1DtqXWVFXTvM2F0k09SHz0YwRINYA9
bandit2
这关它将密码存在 spaces in this filename这个文件中,但是直接cat 的话不行,要在文件名左右加上”,
通过 cat “spaces in this filename”打印密码
密码:UmHadQclWmgdLOKQ3YNgjWxGoRMb5luK
bandit3
进到inhere的目录下,ls发现没有东西。通过 ls -al 将隐藏的文件也显示出来,发现有个.hidden文件。在linux下文件名以.开头的都默认会隐藏起来。 通过 cat .hidden打印密码
密码:pIwrPrtPN36QITSp3EQaw936yaFoFgAB
bandit4
发现inhere中有好多个文件,文件名都以’-‘开头,所以不能直接 用cat命令+文件名,文件名前加./
用file 命令查看目录下文件的类型,发现有个ASCII text和别的都不一样,密码就在这个文件里面
bandit4@bandit:~$ ls
inhere
bandit4@bandit:~$ cd inhere/
bandit4@bandit:~/inhere$ ls
-file00 -file02 -file04 -file06 -file08
-file01 -file03 -file05 -file07 -file09
bandit4@bandit:~/inhere$ file ./*
./-file00: PGP\011Secret Key -
./-file01: data
./-file02: data
./-file03: data
./-file04: data
./-file05: data
./-file06: data
./-file07: ASCII text
./-file08: data
./-file09: data
密码:koReBOKuIDDepwhWk7jZC0RTdopnAYKh
bandit5
题目给的提示:
The password for the next level is stored in a file somewhere under the inhere directory and has all of the following properties:
human-readable
1033 bytes in size
not executable
进入inhere文件夹,可以发现有很多目录,结合题目给的提示,用find命令查找文件
find -type f -size 1033c
-type设置查找文件的属性 f是普通文件
-size指定查找的大小
bandit5@bandit:~/inhere$ find -type f -size 1033c
./maybehere07/.file2
密码:DXjZPULLxYr17uwoI01bNLQbtFemEgo7
bandit6
题目提示
The password for the next level is stored somewhere on the server and has all of the following properties:
owned by user bandit7
owned by group bandit6
33 bytes in size
文件在服务器的某个位置,文件的用户是 bandit7 群组是 bandit6,大小为33c
用命令
find / -user bandit7 -group bandit6 -size 33c
会出来一堆东西,但是又权限的只有
/var/lib/dpkg/info/bandit7.password
用cat将它内容打印出来
密码:HKBPTKQnIay4Fw76bEy8PVxKEDQRKTzs
bandit7
这关密码存在 data.txt中,并且密码在millionth这个单词后面,用grep命令
grep millionth data.txt
millionth cvX2JJa4CFALtqS87jk27qwqGhBM9plV
密码:cvX2JJa4CFALtqS87jk27qwqGhBM9plV
bandit8
密码存储在data.txt中,并且只出现一次
用sort命令给data.txt的内容排序,同时用uniq命令忽略文件的重复行
sort data.txt | uniq -u
-u 参数是只显示出现一次的行列
bandit8@bandit:~$ sort data.txt | uniq -u
UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR
bandit8@bandit:~$
密码:UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR
bandit9
密码存储在data.txt中,并且以几个 “===”开头
用strings 命令打印data.txt的可见字符,用grep命令筛选出包含 “===”的字符串
bandit9@bandit:~$ strings data.txt | grep "=="
<========== the?
========== password
*========== is
:========== truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk
密码 : truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk
bandit10
密码存储在data.txt中,并且被base64加密过,这里用到的命令是base64
base64用法:
格式:base64 file
从指定的文件file中读取数据,编码为base64字符串输出。
格式:base64 -d file
从标准输入中读取已经进行base64编码的内容,解码输出。
bandit10@bandit:~$ base64 -d data.txt
The password is IFukwKGsFW8MOq3IRFqrxE1hxTNEbUPR
密码:IFukwKGsFW8MOq3IRFqrxE1hxTNEbUPR
bandit11
题目提示所有大小写字母位置都旋转了13个位置,这里用到了tr命令
tr 参数 前面的是原字符集,后面的是要替换的字符集
-c或——complerment:取代所有不属于第一字符集的字符;
-d或——delete:删除所有属于第一字符集的字符;
-s或--squeeze-repeats:把连续重复的字符以单独一个字符表示;
-t或--truncate-set1:先删除第一字符集较第二字符集多出的字符。
tr能使用的字符类:
[:alnum:]:字母和数字
[:alpha:]:字母
[:cntrl:]:控制(非打印)字符
[:digit:]:数字
[:graph:]:图形字符
[:lower:]:小写字母
[:print:]:可打印字符
[:punct:]:标点符号
[:space:]:空白字符
[:upper:]:大写字母
[:xdigit:]:十六进制字符
用法:
转换大小写:
echo "HELLO WORLD" | tr 'A-Z' 'a-z'
or
echo "HELLO WORLD" | tr '[:upper:]' '[:lower:]'
这一题输入的命令
bandit11@bandit:~$ cat data.txt | tr 'a-zA-Z' 'n-za-mN-ZA-M'
The password is 5Te8Y4drgCRfCx8ugdwuEX8KFC6k2EUu
密码:5Te8Y4drgCRfCx8ugdwuEX8KFC6k2EUu
bandit12
未完待续
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!