ps:其实上面的参考文章中有错误之处,即在浏览器中直接访问时加上<?php phpinfo()?>这样的代码会在日志文件中被url编码是因为浏览器自动进行url编码造成的,因此只要通过burp将其修改回来即可。
简介:Apache的日志默认存储在安装目录下的logs文件夹下,主要有访问日志和错误日志。在Windows下这两个日志文件为access.log和error.log,Linux下是access_log和error_log。其中access.log/access_log访问日志记录了所有对Web服务器的访问活动。格式如下:
192.168.5. 66- - [21/Apr/2014:10:21:04 +0800] "GET /test.php?id=1 HTTP/1.1" 200 2876
1.远程主机、2.空白(E-mail)、3.空白(登录名)、4.请求时间、5.方法+资源+协议、6.状态代码、7.发送字节数
方法一:
即在浏览器中直接访问,然后用burp抓包,将编码的部分修改回来即可。
方法二:
利用HTTP HEADER中Authorization字段,该字段是用来发送用于HTTP AUTH认证的信息,其值的格式为”Basic base64(User:Pass)”。据此,我们重新构造payload如下:
URL地址:http:// 192.168.5.115/test.php
HTTP HEAD中添加:Authorization: Basic PD9waHAgcGhwaW5mbygpPz46MTIzNTY=
注:PD9waHAgcGhwaW5mbygpPz46MTIzNTY==为base64(<?php phpinfo()?>:12356) 利用此方法可成功将正确的PHP代码写入日志如下:
192.168.5.115 – <?php phpinfo()?> [21/Apr/2014:11:21:04 +0800] “GET /test.php HTTP/1.1” 200 2735