DC416: 2016-Fortress
项目地址:https://download.vulnhub.com/dc416-2016/dc416-fortress.ova
是一个打包好的镜像文件
注意:导入 vmx 时一定要选择我已移动,否则没网
使用 Nmap 扫描出开放服务及操作系统版本

RCE
SCANN3R(换行符绕过)
访问 80 端口发现执行的是 NMap

BP 抓包使用换行符绕过

查看文件发现有两个目录

访问其中一个目录的文件拿到用户 craven 的哈希

查看家目录发现两个用户都可以访问

翻到了提示文件

在别的文件中发现密码的组合方式

成功爆破出密码
1 | 931qwerty? |
弱口令
SSH
使用上面爆破的密码登录成功

提权
硬链接绕过
查看权限无果,发现有个可执行文件,但是需要提供文件

提取字符串

尝试直接使用 reader 读取 flag.txt
1 | $ ./reader flag.txt |
程序输出提示:它检查了文件名是否包含子串 "flag",并拒绝读取
然而读取其他文件(如 /etc/passwd)却能成功:
1 | $ ./reader /etc/passwd |
首先想到的是创建符号链接,指向 flag.txt,但使用不含 flag 的名称
1 | $ ln -s /home/vulnhub/flag.txt /tmp/test |
程序检测到 test 是一个符号链接,并明确拒绝
这表示程序通过 lstat() 或类似方法识别出了符号链接类型(S_IFLNK),从而阻止读取

符号链接被拒绝后,尝试创建硬链接
硬链接与原始文件共享同一个 inode,在文件系统层面与普通文件无异(不是符号链接)
1 | $ ln -f /home/vulnhub/flag.txt /tmp/test2 |
现在,/tmp/test2 与 /home/vulnhub/flag.txt 指向同一个 inode
