靶机渗透实战-PHPMAILER

(1)端口扫描

运行命令“nmap –sS -n 192.168.7.14”扫描目标IP开放的端口。靶机开放smtp、imap等端口,并使用80和8000 端口提供http服务,推测靶机为邮件服务器。

(2)在浏览器中访问靶机的80端口,发现是一个用户反馈页面。

(3)使用dirbuster扫描80端口 ,字典使用dirbuster安装目录下的文件,无需额外的字典,配置如下图所示。

扫描结果如下图所示。

打开flag.php页面,发现为空白,推测得到flag需要获取源代码。

打开secret页面,发现为空白,查看源码,发现隐藏元素,如下图所示。

其中account变量和pass变量字符串仅含数字和abcd等字符猜测为16进制编码,使用xxd命令解码,如下图所示。

打开8000端口,是一个邮件服务器的登录页面。

找到的用户名customer@xxx.com和密码1qaz2wsx3edc登录,可以登录。

发现其中邮件内容,尝试使用base64解码,发现为一个路径,猜测为flag地址。

打开用户反馈页面,输入指定邮箱customer@xxx.com,输入一定反馈信息,如下图所示。

点击submit按钮提交反馈信息,返回了success信息,如下图所示。

image-20210301203859387

登录邮箱查看邮件信息,发现收到一条新的邮件,如下图所示。

phpmailer小于5.2.17的版本存在任意文件读取漏洞,通过精心构造payload,可以读取服务器上任意拥有权限的文件,尝试通过phpmailer的漏洞读取flag.php文件。尝试构造如下反馈,查看网页标签等内容是否被过滤。

打开邮箱可以发现收到邮件中标签未被过滤,br标签换行成功。

尝试获取/etc/passwd文件,查看是否存在权限问题,构造如下的输入。

打开邮箱,如下图所示,可以发现确实收到了附件。

点击“Show Source”,如下图所示。

在打开的页面中可以发现附件内容,如下图所示,可以看到附件文件名、编码格式、内容等信息。

附件内容是经过了base64编码,将上述内容粘贴至文件b64中,通过base64命令进行解码,cat b64 | base64 -d 可以得到解密后字符串,可以发现正确返回了/etc/passwd文件。

通过与上述相同的步骤,根据前面得到的flag地址构造payload获取flag.php和flag.txt文件如下图所示。

可以得到两个flag,如下图所示。

进行base64解码,如下图所示