某个PHP文件存在本地包含漏洞,缺又无法上传文件,这种情况就跟明明有sql注入漏洞缺注不出数据一样难受,那还有什么方法能够利用呢?如果目标服务器运行环境为Apache,或许还会有一线生机!本文将会讲述在Apache环境中,如何利用包含Apache日志文件漏洞获取WebShell。
Apache运行后一般会生成两个日志文件,这两个文件是access.log(访问日志)和error.log(错误日志),每当我们请求该服务器页面时,Apache就会在日志文件内记录下我们的操作,并写到access.log文件中。如下图:
看到这里是不是就有些想法了,没错!我们可以请求不存在的url页面,内容写上利用代码<?php phpinfo();?>
,就能写入log文件里面,再去包含它,我们就能轻松getshell!但我们必须知道文件的绝对路径才能进行利用,这里不会讲述怎么去获取绝对路径,这本该是渗透过程中信息收集需要做的。知道了大概流程,我们来实践一下!
代码如下:
<?php
if(isset($_GET['page'])){
include $_GET['page'];
}
?>
在url中掺入代码
查看log文件
发现<>和空格给过滤了,这样是利用不了的,但没有关系,我们用Burp Suite来绕过编码!
再看看log文件
发现已经完整的写进了access.log文件里面,现在我们可以进行利用了!
经过这段分析,我们可以发现apache的路径是重点,最好更改掉默认路径!