日志文件包含漏洞
日志文件包含漏洞
日志包含漏洞属于是本地文件包含,同样服务器没有很好的过滤,或者是服务器配置不当导致用户进入了内网,本来常规用户是访问不了这些文件的,但由于发起访问请求的人是服务器本身,也就导致用户任意文件读取。
原理:
apache服务器日志存放文件位置:/var/log/apache/access.log
apache日志文件存放着我们输入的url参数
我们可以通过在url参数中写入一句话木马,进行执行,从而将一句话木马写入到日志文件中,我们可以通过包含写入木马的日志文件,从而进行命令执行。
nginx服务器日志存放位置:/var/log/nginx/access.log和/var/log/nginx/error.log
由本地日志文件可以看到nginx服务器中记录的是每次请求user-agent报文,那么我们可以通过包含nginx'服务器的日志文件,然后在user-agent服务器中写入木马语句进行注入
例:
<?php
//WEB手要懂得搜索
if(isset($_GET['file'])){
$file = $_GET['file'];
if(preg_match("/php|flag|data|\~|\!|\@|\#|\\$|\%|\^|\&|\*|\(|\)|\-|\_|\+|\=/i", $file)){
die("error");
}
include($file);
}else{
highlight_file(__FILE__);
}
过滤了很多,php和-被过滤导致不能使用php伪协议
通过产生报错,可以看到题目使用的服务器是nginx,访问默认日志文件
通过返回信息可以看到日志文件记录了传入参数的值以及user-agent的值
但是由于file通过正则匹配过滤了php所以我们无法在url参数里面直接写入木马,但是user-agent位置并没有进行过滤,所以我们可以在这里进行注入
可以通过包含这个日志文件,然后在user-agent报文里面添加木马,进行注入
通过执行phpinfo();发现以及执行成功。