《白帽子讲web安全》

news2024/9/29 11:24:31

第十四章 PHP安全

文件包含漏洞是“代码注入”的一种。“代码注入”这种攻击,其原理就是注入一段用户能控制的脚本或代码,并让服务器端执行。“代码注入”的典型代表就是文件包含(File Inclusion)。文件包含可能会出现在JSP、PHP、ASP等语言中
常见的导致文件包含的函数如下。
PHP:include(), include_once(), require(), require_once(), fopen(), readfile(), …
JSP/Servlet:ava.io.File(), java.io.FileReader(), …
ASP:include file, include virtual, …

文件包含是PHP的一种常见用法,主要由4个函数完成:include()require()include_once()require_once()
当使用这4个函数包含一个新的文件时,该文件将作为PHP代码执行,PHP内核并不会在意该被包含的文件是什么类型。所以如果被包含的是txt文件、图片文件、远程URL,也都将作为PHP代码执行

本地文件包含

在这里插入图片描述
将test.php文件放到已配置到的web服务器所在目录,直接使用url即可访问并执行该php文件
文件内容为

<?php  
include ($_GET[test]);
?>

在这里插入图片描述
包含该目录下的文件,这个文件在目录是不存在的,所以提示没找到。
那么访问一个存在的文件如a.txt,内容为

<?php
	phpinfo();
?>

在这里插入图片描述
可以看到该txt文件中的函数已经被执行了。
要想成功利用文件包含漏洞,需要满足下面两个条件:
(1)include()等函数通过动态变量的方式引入需要包含的文件;
(2)用户能够控制该动态变量。

能够打开并包含本地文件的漏洞,被称为本地文件包含漏洞(Local File Inclusion,简称LFI)
使用了“…/…/…/”这样的方式来返回到上层目录中,这种方式又被称为“目录遍历,php设置open_basedir可以预防目录遍历
要解决文件包含漏洞,应该尽量避免包含动态的变量,尤其是用户可以控制的变量。可以使用白名单,枚举可以被包含的文件

远程文件包含

如果PHP的配置选项allow_url_include为ON的话,则include/require函数是可以加载远程文件的,这种漏洞被称为远程文件包含漏洞(Remote File Inclusion,简称RFI)。如图可见提示all_url_include=0所以不允许包含http远程地址。
在这里插入图片描述
在php.ini文件设置
在这里插入图片描述
如果远程地址的文件包含可执行代码,则会被执行。

第十七章 安全的开发流程 SDL

安全开发流程,能够帮助企业以最小的成本提高产品的安全性。它符合“Secure at the Source”的战略思想.
SDL的全称是Security Development Lifecycle,即:安全开发生命周期。它是由微软最早提出的,在软件工程中实施,是帮助解决软件安全问题的办法
自2004年起,SDL一直都是微软在全公司实施的强制性策略。SDL的大致步骤如下
在这里插入图片描述

  • 培训
    开发团队的所有成员都必须接受适当的安全培训,覆盖安全设计,威胁建模、安全编码、安全测试、隐私等。
  • 安全要求
    在项目确立之前,需要提前与项目经理或者产品owner进行沟通,确定安全的要求和需要做的事情。
  • 质量门/bug栏
    质量门和bug栏用于确定安全和隐私质量的最低可接受级别。在项目开始时定义这些标准可加强对安全问题相关风险的理解,并有助于团队在开发过程中发现和修复安全bug
  • 安全和隐私风险评估
  • 设计要求
    在设计阶段应仔细考虑安全和隐私问题,在项目初期确定好安全需求,尽可能避免安全引起的需求变更。
  • 减小攻击面
    减小攻击面包括关闭或限制对系统服务的访问,应用“最小权限原则”,以及尽可能地进行分层防御
  • 威胁建模
    为项目或产品面临的威胁建立模型,明确可能来自的攻击有哪些方面。微软提出了STRIDE模型以帮助建立威胁模型
  • 使用指定的工具
    开发团队使用的编译器、链接器等相关工具,可能会涉及一些安全相关的环节
  • 静态分析
    代码静态分析可以由相关工具辅助完成,其结果与人工分析相结合。
  • 动态分析
    动态程序分析动态分析是静态分析的补充,用于测试环节验证程序的安全性。
  • 模糊测试
    模糊测试(Fuzzing Test)
  • 威胁模型和攻击面评析
  • 事件响应计划
  • 最终安全评析
    最终安全评析(FSR)是在发布之前仔细检查对软件执行的所有安全活动。通过FSR将得出以下三种不同结果。❍ 通过FSR。在FSR过程中确定的所有安全和隐私问题都已得到修复或缓解。❍ 通过FSR但有异常。在FSR过程中确定的所有安全和隐私问题都已得到修复或缓解,并且/或者所有异常都已得到圆满解决。无法解决的问题将记录下来,在下次发布时更正。❍ 需上报问题的FSR。如果团队未满足所有SDL要求,并且安全顾问和产品团队无法达成可接受的折中,则安全顾问不能批准项目,项目不能发布。团队必须在发布之前解决所有可以解决的问题,或者上报高级管理层进行抉择。
  • 发布/存档
    相对于微软的SDL, OWASP推出了SAMM(Software Assurance Maturity Model)[插图],帮助开发者在软件工程的过程中实施安全。

敏捷SDL

微软为敏捷开发专门设计了敏捷SDL
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1235432.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何有效的禁止Google Chrome自动更新?

禁止Chrome自动更新 1、背景2、操作步骤 1、背景 众所周知&#xff0c;当我们在使用Selenium进行Web自动化操作&#xff08;如爬虫&#xff09;时&#xff0c;一般会用到ChromeDriver。然而Driver的更新速度明显跟不上Chrome的自动更新。导致我们在使用Selenium进行一些操作时就…

新加坡服务器托管-金融企业的选择

新加坡作为一个亚洲金融中心&#xff0c;其优越的地理位置和先进的信息通信技术基础设施&#xff0c;使得其成为了众多金融机构企业选择服务器机房托管的理想地点。金融行业对于服务器的安全性和可靠性要求很高&#xff0c;而将服务器托管在新加坡有许多好处。 首先&#xff0c…

新零售数字化系统提供商怎么选择?2023十大收银系统排行榜-亿发

随着零售业务的日益繁荣和电子商务的迅猛发展&#xff0c;零售收银系统已成为各类商家提高效率、管理库存、提供更好服务的不可或缺的工具。然而&#xff0c;在众多的收银系统中&#xff0c;如何选择一款适合自己的&#xff0c;一直是许多商家头疼的问题。今天我们就来盘点一下…

java项目之木里风景文化管理平台(ssm+vue)

项目简介 木里风景文化管理平台实现了以下功能&#xff1a; 前台功能&#xff1a;用户进入系统可以实现首页&#xff0c;旅游公告&#xff0c;景区&#xff0c;景区商品&#xff0c;景区美食&#xff0c;旅游交通工具&#xff0c;红黑榜&#xff0c;个人中心&#xff0c;后台…

Spark---核心介绍

一、Spark核心 1、RDD 1&#xff09;、概念&#xff1a; RDD&#xff08;Resilient Distributed Datest&#xff09;&#xff0c;弹性分布式数据集。 2&#xff09;、RDD的五大特性&#xff1a; 1、RDD是由一系列的partition组成的 2、函数是作用在每一个partition(split…

SSM高考志愿辅助推荐系统-计算机毕业设计附源码21279

目 录 摘要 1 绪论 1.1 研究背景 1.2研究意义 1.3论文结构与章节安排 2 高考志愿辅助推荐系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系统用例分析 2…

基于社交网络算法优化概率神经网络PNN的分类预测 - 附代码

基于社交网络算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于社交网络算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于社交网络优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神…

wsl安装ubuntu的问题点、处理及连接

WSL安装Ubuntu的参考链接 (41条消息) wsl报错&#xff1a;WslRegisterDistribution failed with error: 0x800701bc_yzpyzp的博客-CSDN博客_0x800701bc wsl (41条消息) 使用Ubuntu安装软件出现Unable to locate package错误解决办法_大灰狼学编程的博客-CSDN博客 手把手教你…

excel自定义函数之汉字转为拼音及大写字母

使用场景&#xff1a;想把姓名转化为拼音格式&#xff0c;然后拼音转为大写字母 至于怎么在excel里面自定义函数&#xff0c;自行百度都有&#xff0c;这里简单截图看看。 步骤&#xff1a;文件》选项》自定义功能区》 打开编辑窗口 把下面这段代码粘贴就能实现汉字转化为拼音…

医疗器械维修售后技术培训与支持的重要性

医疗器械维修售后技术培训与支持的重要性 随着我国医疗器械产业的的高速发展、医疗器械企业的崛起,大量创新医疗器械产品进入医疗机构。但医疗设备在使用和维护过程中,暴露出许多问题和不足,如部分设备故障率较高、临床工程培训不足、售后服务模式整体比较落后等,这影响了医疗…

【JUC】十、ForkJoin

文章目录 1、分支合并框架2、案例3、ForkJoinTask4、工作窃取算法5、ForkJoinPool 一个个任务执行在一个个线程上&#xff0c;倘若某一个任务耗时很久&#xff0c;期间其他线程都无事可做&#xff0c;显然没有利用好多核CPU这一计算机资源&#xff0c;因此&#xff0c;出现了&q…

红队攻防之Goby反杀

若结局非我所愿&#xff0c;那就在尘埃落定前奋力一搏。 本文首发于先知社区&#xff0c;原创作者即是本人 一、弹xss 为了方便&#xff0c;本次直接使用 PhpStudy 进行建站&#xff0c;开启的web服务要为MySQLNginx&#xff0c;这里的 PhpStudy 地址为 http://x.x.x.x&…

AC修炼计划(AtCoder Beginner Contest 329)

传送门&#xff1a;&#xff33;&#xff4b;&#xff59; Inc, Programming Contest 2023&#xff08;AtCoder Beginner Contest 329&#xff09; - AtCoder A&#xff0c;B&#xff0c;C&#xff0c;D 这四道题比较简单&#xff0c;就不多叙述。 E - Stamp 这题是一道比较…

模拟量采集----测量输入的电压

生活中的模拟量有很多 大多都为电压信号和电流信号 今天讲如何测量输入的电压信号 由图中的黄线可知&#xff0c;该运放是采用的同相放大器中的电压跟随器 电压跟随器的特点是电压的输入和输出隔离 同相运放的输入与输出的关系是&#xff1a;输出1R2/R1 在图上对应的就是输…

Spring:IoC,AOP的简单理解与使用

IoC容器 IoC &#xff0c;Spring全家桶各个功能模块的基础&#xff0c;是创建对象的容器。 IoC概念 控制反转&#xff0c;将对象的创建进行反转&#xff0c;常规情况下对象由开发者手动创建&#xff0c;而使用IoC不再需要创建对象&#xff0c;由IoC容器根据需求自动创建项目…

vue实现el-menu与el-tabs联动

效果图如下&#xff1a; 当标签栏很多的时候效果图如下&#xff1a; 左侧菜单布局 &#xff08;$route.path高亮显示激活路由 :default-active"$route.path"&#xff09; <el-menu:default-active"$route.path"class"el-menu-vertical-demo"b…

通达信吊灯止损指标公式,根据波动幅度自动调整止盈止损

吊灯止损指标是由查克勒博(Chuck LeBeau)发明的&#xff0c;亚历山大埃尔德(Alexander Elder)在其著作《走进我的交易室》中介绍了这种止盈止损方法&#xff08;中文版翻译为倒挂式离场法则&#xff09;&#xff0c;它是根据平均真实波幅ATR设置跟踪止损。吊灯止损指标的目的是…

【Java系列】SpringBoot 集成MongoDB 详细介绍

目录 写在前面 一、步骤介绍 步骤 1: 添加 MongoDB 依赖 步骤 2: 配置 MongoDB 连接信息 步骤 3: 创建实体类 步骤 4: 创建 Repository 接口 步骤 5: 使用 Repository 进行操作 二、特殊处理 写在前面 在Spring Boot中集成MongoDB的过程相对简单&#xff0c;以下是一个…

基于单片机公交安全预警系统仿真设计

**单片机设计介绍&#xff0c; 基于单片机公交安全预警系统仿真设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的公交安全预警系统可以被设计成能够实时监测公交车辆的行驶状态&#xff0c;并在发生异常情况时进行…

【Computer Vision Foundation】全球计算机视觉基金会论文网

计算机视觉基金会&#xff08;Computer Vision Foundation&#xff0c;简称CVF&#xff09;是一个致力于推动计算机视觉领域研究和发展的组织。以下是关于计算机视觉基金会的一些基本信息&#xff1a; 成立目的&#xff1a; CVF成立的目的是促进计算机视觉领域的学术研究、技术…