前言
题目分类:
CTF—Web—文件包含—07—包含日志
一、题目描述
题目: 文件包含
链接:http://172.16.15.206/stage/6/index.php?file=says.php
提示:成功包含apache访问日志即可拿到key值
二、解题步骤
1、判断系统
首先,考生需要弄清楚这是一个windows系统还是一个linux系统,如果考生尝试包含win.ini则会提示失败,而尝试包含/etc/passwd则会看到密码文件,证明这是一个linux系统。
分别访问:
http://172.16.15.206/stage/6/index.php?file=win.ini
http://172.16.15.206/stage/6/index.php?file=/etc/passwd
2、访问日志
/var/log/httpd/access_log是Apache服务器的访问日志文件
http://172.16.15.206/stage/6/index.php?file=/var/log/httpd/access_log
尝试包含常规的apache访问日志路径,则会给出提示,“apache访问日志被隐藏”
3、linux特殊文件系统(/proc)
此题模拟的就是如果找不到apache访问日志路径还有什么其他方法?/proc是linux系统上的一个特殊的文件系统
其中httpd进程目录下的/fd目录下存在很多数字指针(从0开始,每次递增1,最多十几个),其中一个指针就是指向的apache访问日志,考生可通过包含/proc/self/来进入到httpd的目录,然后穷举/fd/目录下的数字指针即可以拿到key。
http://172.16.15.206/stage/6/index.php?file=/proc/self/fd/7
三、总结
1、文件包含中判断文件系统的方法
包含 win.ini和/etc/passwd,前者有显示,则为windows,相反,则为inux