日志文件关闭:Apache目录下的httpd.conf文件
#ErrorLog "logs/error.log"
#CustomLog "logs/access.log" common
加#号为注释 不产生日志文件 如果去掉# 将会在Apache/logs/目录下产生日志文件
linux:
access_log
error_log
windows:
access.log
error.log
access_log
每一行记录了一次网站的访问记录,一共有7部分组成,其格式如下:客户端地址 访问者的标识 访问者的验证名字 请求的时间 请求类型 请求的HTTP代码 发送给客户端的字节数
error_log
第一项是错误发生的日期和时间;
第二项是错误的严重性,LogLevel指令使只有高于指定严重性级别的错误才会被记录;
第三项是导致错误的IP地址;
此后是信息本身,在此例中,服务器拒绝了这个客户的访问。服务器在记录被访问文件时,用的是文件系统路径,而不是Web路径。
原理
当访问一个不存在的资源时,Apache同样会记录下来,这就意味着,如果网站存在包含漏洞,却没有可以包含的文件时(通常指的是网页中的木马文件),就可以去访问URL:http://www.any.com/<?php phpinfo();?>,虽然说网页上提示您没有访问的权限,但是Apache会记录我们的请求“<?php phpinfo();?>”,并写到access.log文件中,这时候再去包含Apache的日志文件,不就可以利用文件包含了吗?
但实际上是不行的,原因是访问URL后,一句话在日志文件里“变形了”,我们需要抓包 将浏览器所转的编码改回原来的字符(<,>还有空格都会被转义 所以需要抓包更改回来 )
然后中国菜刀连接日志文件就可以获取到网站webshell
示例:
抓包修改
1.PNG
网友评论