Linux | Bandit 练习
$Level~0$
1 | ssh -p 2220 [email protected] |
然后再输入 $password$
$bandit0$
输入
1 | ls |
1 | cat readme |

获取密码之后退出登录
1 | exit |
$Level~1$
1 | ssh -p 2220 [email protected] |
复制粘贴 $level~0$ 的密码登入
此时只发现一个名为 $-$ 的东西
他并不是一个文件夹名字
当我们使用
1 | vim - |
发现都没什么用
事实上
当我们使用
1 | cat < - |
可以输出结果
接下来不再重复登录以及登出操作
$Level~2$
此时列表下存在一个名为 $spaces~in~this~filename$
如果我们直接
则会提示错误,他把整个文件名字拆成了 $4$ 个不同的文件名字
我们可以用
1 | cat spac |
再键入 Tab 键自动补全
则文件名中如果有空格要用 \ 符号
$Level~3$
当我们进入 $inhere$ 目录并且使用 $ls$ 发现没有任何文件
所以我们用
1 | ls -a |
列出当前目录下的所有文件,包括隐藏文件
1 | cat .hidden |
获得密码
$Level~4$
需要尝试
$Level~5$
$Solution~1$
使用 $find$ 指令
1 | find ./ -type f -readable ! -executable -size 1033c |
$-size~1033$ 来查找文件大小要求
$-type~f$ 仅查看文件
再使用 $cat$ 命令获取其中的文本
$Solution~2$
1 | ls -la */* |
$/$ 可以获取所有子文件
$Solution~3(ERORR)$
使用 $grep$
获取第一个命令的输出并将其作为输入通过管道传入第二个命令中
$/$ 可以获取所有文件,但是不包括隐藏的文件
使用 $\{.,\}$ 来包括以 $.$ 开头的文件
$,$ 表示以其他任何内容
当我们使用
1 | file */{.,}* | grep "ASCII text" |
打印出人类可读的文件类型
这些文件分为 $with~very~long~lines$ 和 空
为了过滤出不含非常长的行,使用指令
1 | file */{.,}* | grep "ASCII text" | grep -v ', with very long lines' |
然后可以手动检查这些文件(此时是假设文件不包含 $long~lines$
但是从其他方法可知,答案并不在这些文件中
$Solution~4$
用 $du$ 命令获取文件的大小
如果要获取以字节为单位的大小,要使用 $-b$ 标志。要获取所有文件(包括隐藏文件),可以用 $-a$ 标志
$ls~-l$ 命令会在第五列显示文件的大小
1 | du -b -a | grep |
$Level~6$
1 | ls -l |
可以查看文件权限
第三列显示用户,第四列显示拥有该文件的组
$find$ 指令提供了查找特定用户 $-user~
当使用命令
1 | find / -type f -user bandit7 -group bandit6 -size 33c |
我们发现会为我们无权限的文件打印 $Permission~denied$ 的报错
可以加上 $2>/dev/null$ 可以隐藏所有错误信息
$Level~7$
$Solution~1$
1 | vim data.txt |
在 $vim$ 中键入 $/$
输入 $millionth$
$Solution~2$
1 | cat data.txt | grep millionth |
$Level~8$
$uniq$ 基于相同的行进行过滤。
$-u$ 用于过滤唯一的行
$-c$ 可以计数
$-d$ 可以仅返回重复行
$sort$ 可以对文本文件的行进行排序
$-r$ 反向排序
$-n$ 数字排序
$Level~9$
$strings$ 命令可以用来查找人类可读的字符串
1 | strings data.txt | grep == |
$Level~10$
$base64~[OPTIONS]~[INFILE]~[OUTFILE]$
$-d~or~-decode$
$-e~or~-encode$
1 | cat data.txt |
$Level~11$
$Rot13$
1 | Map upper case A-Z to N-ZA-M and lower case a-z to n-za-m |
1 | cat data.txt | tr 'A-Za-z' 'N-ZA-Mn-za-m' |
$Level~12$
$mkdir~
$cp~
$mv~
$mktemp~-d$ 创建一个具有随机名称的文件夹
1 | cd /tmp |

$xxd~~