Linux 闯关游戏之通关秘籍续2

CTF相关 2019-11-10

本文作者:crayon(信安之路贡献者) 本文接上一篇未完成的内容《原创 Linux 闯关游戏之通关秘籍》,上一篇讲到 26 关,本文内容从 27 关到 33 关

Level 26 → Level 27

这一关继续使用上一关的环境,在进入编辑模式之后,在 vi 编辑器中打开一个 shell

在编辑模式中输入 ":set shell sh=/bin/sh " ,然后回车,接着再输入 ":sh" 回车,就得到一个 shell 了,接下来就是想办法获取下一关的密码

过程:

img

img

img

密码为:

3ba3118a22e93127a4ed485be72ef5ea

之前到这里就结束了,后面的关卡是更新的,与 git 有关

Level 27→ Level 28

用账号:bandit27 ,密码:

3ba3118a22e93127a4ed485be72ef5ea

进入本关

描述:有一个 git 存储库 ssh://bandit27-git@localhost/home/bandit27-git/repo 。用户的密码与用户的密码 bandit27-git 相同 bandit27 。克隆存储库并找到下一级别的密码。

过程:

img

密码就在 README 里面

Level 28→ Level 29

用账号:bandit28,密码:

0ef186ac70e04ea33b4c1853d2526fa2

进入本关

描述:有一个 git 存储库 ssh://bandit28-git@localhost/home/bandit28-git/repo 。用户的密码与用户的密码 bandit28-git 相同 bandit28 。克隆存储库并找到下一级别的密码。

过程:

img

由于之前的文件夹还存在,并且没有权限删除,所以重新建一个

img

img

git log 会按提交时间列出所有的更新,最近的更新排在最上面。每次更新都有一个 SHA-1 校验和、作者的名字和电子邮件地址、提交时间,最后缩进一个段落显示提交说明。 执行命令后看到一共有三次操作记录。

git show 会显示各种类型的对象,这些对象包括 blobs,树,标签和提交。

Level 29→ Level 30

用账号:bandit29,密码:

bbc96594b4e001778eee9975372716b2

进入本关

描述:有一个 git 存储库 ssh://bandit29-git@localhost/home/bandit29-git/repo 。用户的密码与用户的密码 bandit29-git 相同 bandit29。克隆存储库并找到下一级别的密码。

过程:

img

img

img

用上一关的套路并不行,但是提示是 “no passwords in production!”

中途由于卡住了,没了思路搞了很久,所以重新做了一次

img

img

img

创建新分支:

git branch branchName

切换到新分支:

git checkout branchName

这里关键的就是去切换分支,这卡了很久,有两个分支 remotes/origin/devremotes/origin/sploits-dev ,一个一个去看,接着套路就跟上一关一样了。

Level 30→ Level 31

用账号:bandit30,密码:

5b90576bedb2cc04c86a9e924ce42faf

进入本关

描述:有一个git存储库 ssh://bandit30-git@localhost/home/bandit30-git/repo。用户的密码与用户的密码 bandit30-git相同 bandit30。克隆存储库并找到下一级别的密码。

过程:在进行下面的过程之前我将之前的套路全部试了一次都不行,克隆过程我也不再展示出来了。git clone 还会创建一个 .git 的目录,这个目录下包含了所有 git 正常工作所需要的信息 。包括对象存储,配置文件,分支和标签,HEAD 文件等 ,git reflog 可以查看所有分支的所有操作记录(包括提交、回退、已删除的提交操作记录等) ,git show-ref 它的作用是显示本地存储库中可用的引用以及关联的提交 ID。此外,它可以用来测试一个特定的 ref 是否存在。

img

Level 31→ Level 32

用账号:bandit31,密码:

47e603bb428404d265f59c42920d81e5

进入本关

描述:有一个 git 存储库 ssh://bandit31-git@localhost/home/bandit31-git/repo。用户的密码与用户的密码 bandit31-git相同 bandit31。克隆存储库并找到下一级别的密码。

过程:

img

README.md 文件告诉我们,需要把一个名为 key.txt 的文件 PUSH 到远程仓库,所以继续

img

这里提示 .gitignore 忽略了我们提交的文件,如果想提交请用 -f 参数

img

在提交项目的时候,如果有不想提交的文件,就可以写到 .gitignore 里面去,提交的时候就会忽略它,这里可以看出忽略了所有的 txt 文件,所以使用 -f 强制提交

img

img

使用 git commit 命令的时候会打开 nano编辑器,然后输入一些提交说明,然后保存即可

Level 32→ Level 33

用账号:bandit32,密码:

56a9bf19c63d650ce78e6ec0354ee45e

进入本关

描述:在所有这些git东西后,它的时间为另一个 esape。祝你好运!

过程:

img

这个脚本把我的命令全部转成大写了,但是 linux 区分大小写,解决思路:写一个脚本,脚本名字用大写字母,脚本内容执行一个 shell

img

一定要注意当我执行 ./CRAYONSHELL 我成功获得 bandit33 的 shell

至此通关!!!


本文由 信安之路 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

楼主残忍的关闭了评论