原文:
https://shahjerry33.medium.com/rce-via-lfi-log-poisoning-the-death-potion-c0831cebc16d
背景知识:
什么是vsftpd.log文件?
它用于跟踪FTP服务的恶意活动,必须对其进行配置以确保使用详细的vsftpd日志格式记录发送到ftp服务器的所有命令。默认的vsftpd日志文件是/ var / log / vsftpd。日志。基本上,它跟踪FTP服务器上的登录活动或失败的登录尝试。
什么是auth.log文件?
它包含系统授权信息,包括使用的用户登录名和身份验证机制。
什么是日志投毒?
日志投毒是LFI到RCE的常见技巧。攻击者将恶意代码注入到日志文件里,然后去包含日志文件。
我是符合发现该漏洞的:
1.
我发现了一个LFI漏洞。
2.然后我尝试包含/ etc / shadow文件,但未得到任何结果。
3.然后我尝试包含/var/log/auth.log文件,但未得到任何结果。
4.然后我用nmap扫描了一下开放的端口
如您所见,端口21、22和80已打开,因此我想到了ssh登录上的日志中毒,但不幸的是/var/log/auth.log文件无法在网络上访问,因此我认为不可能实现远程代码执行。
我没有意识到ftp日志是保存在另一个名为vsftpd.log的文件中,我还认为它也保存在auth.log中,但是我尝试访问/var/log/vsftpd.log文件并成功看到了文件内容,所以下一步是在ftp服务器上进行日志中毒。
5.网站使用的是php,所以我使用php的payload来进行投毒。
payload:
<?php system($ _GET ['commandInjection']); ?>
6.现在,我使用/var/log/vsftpd.log&commandInjection=ifconfig访问网站,并成功执行了代码。
译者按:
LFI包含日志文件的确是常见的利用手法,相信大家也遇到过很多。但是需要注意的是日志文件的权限,很多日志文件是root用户才可以读的。所以如果包含不进来的话,很有可能是权限不够。需要寻找一个低权限就可以读的日志文件。如果大家有什么特殊的包含技巧的话,欢迎和译者交流。
本文迁移自知识星球“火线Zone”