网络安全-攻击流程-应用层
应用层攻击针对OSI模型的第七层(应用层),主要利用协议漏洞、业务逻辑缺陷或用户交互弱点,直接威胁Web应用、API、数据库等服务。以下是常见应用层攻击类型及其流程,以及防御措施:
1. SQL注入(SQL Injection)
攻击流程:
- 漏洞探测:攻击者向输入字段(如登录框、搜索栏)提交试探性SQL语句(如
' OR 1=1 --)。 - 语句构造:若应用未过滤输入,恶意SQL语句被拼接至数据库查询中。
- 数据窃取/篡改:执行非法操作(如提取用户表、删除数据、绕过身份验证)。
防御措施:
- 使用参数化查询(预编译语句)或ORM框架。
- 输入验证与过滤(白名单机制)。
- 部署Web应用防火墙(WAF)拦截恶意语句。
2. 跨站脚本攻击(XSS)
攻击流程:
- 注入恶意脚本:攻击者在用户可输入区域(如评论框)插入JavaScript代码(如
<script>alert('XSS')</script>)。 - 脚本传播:未转义的脚本被服务器存储或直接反射到其他用户页面。
- 用户劫持:受害者浏览器执行恶意脚本,窃取Cookie、重定向到钓鱼网站或劫持会话。
防御措施:
- 对用户输入和输出内容进行HTML转义(如
&转&)。 - 设置HTTP头
Content-Security-Policy (CSP)限制脚本来源。 - 标记Cookie为
HttpOnly和Secure。
3. 跨站请求伪造(CSRF)
攻击流程:
- 构造恶意请求:攻击者创建伪装成合法操作的请求链接(如转账URL)。
- 诱导用户触发:通过钓鱼邮件、恶意网站诱导已登录用户点击链接。
- 执行非授权操作:用户浏览器自动携带Cookie发送请求,执行攻击者预设操作(如修改密码)。
防御措施:
- 使用CSRF Token(服务端生成并验证唯一令牌)。
- 检查请求头
Referer或Origin字段。 - 关键操作需二次验证(如短信验证码)。
4. 应用层DDoS攻击
攻击流程:
- 模拟合法请求:攻击者发送大量高仿真的HTTP请求(如频繁访问登录页、API接口)。
- 资源耗尽:目标服务器因处理请求耗尽CPU、内存或数据库连接。
- 服务瘫痪:正常用户无法访问服务(如电商秒杀场景下的CC攻击)。
防御措施:
- 设置请求频率限制(如IP限速、人机验证)。
- 使用CDN缓存静态内容,减轻源站压力。
- 基于AI/ML的行为分析识别异常流量。
5. 钓鱼攻击(Phishing)
攻击流程:
- 伪造信任:攻击者仿冒合法网站或邮件(如银行、社交平台)。
- 诱导交互:通过链接、附件诱导用户输入敏感信息(账号、密码)。
- 信息窃取:攻击者获取数据后实施进一步攻击(如账户盗用、勒索)。
防御措施:
- 用户教育(识别钓鱼邮件特征)。
- 部署邮件网关过滤恶意链接。
- 启用多因素认证(MFA)降低凭证泄露风险。
6. 文件上传漏洞
攻击流程:
- 上传恶意文件:攻击者上传包含后门(如
.php、.jsp)或恶意脚本的文件。 - 服务器执行:若服务器未限制文件类型或未隔离存储,恶意文件被解析执行。
- 控制服务器:攻击者获取服务器权限,植入木马或窃取数据。
防御措施:
- 限制上传文件类型(白名单校验扩展名和MIME类型)。
- 重命名文件并存储至非Web目录。
- 使用杀毒软件扫描上传内容。
7. API滥用攻击
攻击流程:
- 接口探测:攻击者枚举API端点(如
/api/v1/users)。 - 越权访问:利用未授权访问漏洞(如未鉴权的管理接口)获取敏感数据。
- 数据泄露:批量爬取用户信息或滥用业务逻辑(如无限领取优惠券)。
防御措施:
- 实施严格的身份认证与权限控制(OAuth 2.0、JWT)。
- 限制API调用频率与返回数据量。
- 使用API网关监控和日志分析。
8. 命令注入(Command Injection)
攻击流程:
- 注入系统命令:攻击者通过输入字段注入操作系统命令(如
; rm -rf /)。 - 服务端执行:应用未过滤直接调用系统命令(如调用
ping命令)。 - 系统控制:攻击者执行任意命令,删除文件或反弹Shell。
防御措施:
- 避免直接拼接用户输入到系统命令。
- 使用安全的函数替代(如Python的
subprocess而非os.system)。 - 输入内容严格校验(禁止特殊字符)。
9. 业务逻辑漏洞
攻击流程:
- 逻辑绕过:攻击者利用业务流程缺陷(如修改价格参数、重复提交订单)。
- 非法获利:通过篡改数据或绕过限制实现非预期操作(如0元购、刷积分)。
- 系统失衡:破坏业务规则,导致资金损失或数据混乱。
防御措施:
- 关键业务操作服务端二次校验(如支付金额、库存)。
- 记录并审计用户操作日志。
- 设计业务流程时进行威胁建模。
10. 零日漏洞利用
攻击流程:
- 漏洞发现:攻击者挖掘未公开的应用程序漏洞(如框架缺陷、配置错误)。
- 编写Exploit:开发利用代码绕过现有防护措施。
- 定向攻击:针对目标发起攻击,获取控制权或窃取数据。
防御措施:
- 定期更新应用和依赖库(如Java Log4j漏洞修复)。
- 参与漏洞赏金计划,提前发现潜在风险。
- 部署运行时应用自我保护(RASP)技术。
通用防御策略
- 纵深防御:结合WAF、IDS/IPS、日志监控等多层防护。
- 安全开发:遵循安全编码规范(如OWASP Top 10)。
- 定期渗透测试:模拟攻击检测漏洞。
- 最小权限原则:限制应用和用户的访问权限。
应用层攻击隐蔽性强且危害直接,需通过技术防护、流程管控和用户教育综合应对。
相关文章:
网络安全-攻击流程-应用层
应用层攻击针对OSI模型的第七层(应用层),主要利用协议漏洞、业务逻辑缺陷或用户交互弱点,直接威胁Web应用、API、数据库等服务。以下是常见应用层攻击类型及其流程,以及防御措施: 1. SQL注入(SQ…...
java八股文-spring
目录 1. spring基础 1.1 什么是Spring? 1.2 Spring有哪些优点? 1.3 Spring主要模块 1.4 Spring常用注解 1.5 Spring中Bean的作用域 1.6 Spring自动装配的方式 1.7 SpringBean的生命周期 1.8 多级缓存 1.9 循环依赖? 1 .8.1 原因 1.8…...
Jvascript网页设计案例:通过js实现一款密码强度检测,适用于等保测评整改
本文目录 前言功能预览样式特点总结:1. 整体视觉风格2. 密码输入框设计3. 强度指示条4. 结果文本与原因说明 功能特点总结:1. 密码强度检测2. 实时反馈机制3. 详细原因说明4. 视觉提示5. 交互体验优化 密码强度检测逻辑Html代码Javascript代码 前言 能满…...
【Scrapy】Scrapy教程2——工作原理
文章目录 数据流组件引擎Engine调度器Scheduler下载器Downloader爬虫Spiders项目管道Item Pipeline下载器中间件Downloader Middlewares爬虫中间件Spider Middlewares 在学习Scrapy前,我们需要先了解其架构和工作原理,这样才能很好的去使用Scrapy。 Scra…...
探索 DeepSeek:AI 领域的璀璨新星
在人工智能飞速发展的当下,DeepSeek 作为行业内的重要参与者,正以独特的技术和广泛的应用备受瞩目。 DeepSeek 是一家专注于实现 AGI(通用人工智能)的中国人工智能公司。它拥有自主研发的深度学习框架,能高效处理海量…...
宏基传奇swift edge偶尔开机BIOS重置
电脑是acer swift edge, SFA16-41,出厂是Win11系统, BIOS版本出厂1.04,更新到了目前最新1.10。 问题是 会偶尔开机ACER图标变小跑到屏幕左上方,下次开机BIOS就会被重置,开机等待很长时间。 因为是偶尔现象的…...
自动驾驶---如何打造一款属于自己的自动驾驶系统
在笔者的专栏《自动驾驶Planning决策规划》中,主要讲解了行车的相关知识,从Routing,到Behavior Planning,再到Motion Planning,以及最后的Control,笔者都做了相关介绍,其中主要包括算法在量产上…...
【C语言】第一期——数据类型变量常量
目录 1 字面量 2 整数类型 2.1 整数类型的取值范围 2.1.1 sizeof 运算符 2.2 GB、MB、KB、B之间的关系 2.3 定义整数类型的变量并打印 2.4 整数类型代码演示 3 浮点类型 3.1 浮点类型的取值范围 3.2 定义浮点类型变量并打印 3.3 保留2位小数点 4 char字符型 4.1…...
04运维实用篇(D4_日志)
目录 一、简介 二、代码中使用日志工具记录日志 1. 操作步骤 步骤1:添加日志记录操作 步骤2:设置日志输出级别 步骤3:设置日志组 2. 知识小结 三、优化日志对象创建代码 1. 实例 2. 总结 四、日志输出格式控制 1. 实例 2. 总结 …...
centos部署open-webui
提示:本文将简要介绍一下在linux下open-webui的安装过程,安装中未使用虚拟环境。 文章目录 一、open-webui是什么?二、安装流程1.openssl升级2.Python3.11安装3.sqlite安装升级4.pip 下载安装open-webui 总结 一、open-webui是什么? Open W…...
UE求职Demo开发日志#32 优化#1 交互逻辑实现接口、提取Bag和Warehouse的父类
1 定义并实现交互接口 接口定义: // Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h" #include "UObject/Interface.h" #include "MyInterActInterface.generated.h…...
Visonpro 检测是否有缺齿
一、效果展示 二、上面是原展开工具CogPolarUnwrapTool; 第二种方法: 用Blob 和 CogCopyRegionTool 三、 用预处理工具 加减常数,让图片变得更亮点 四、圆展开工具 五、模板匹配 六、代码分解 1.创建集合和文子显示工具 CogGraphicCollec…...
第1章大型互联网公司的基础架构——1.6 RPC服务
你可能在1.1节的引言中注意到业务服务层包括HTTP服务和RPC服务,两者的定位不一样。一般来说,一个业务场景的核心逻辑都是在RPC服务中实现的,强调的是服务于后台系统内部,所谓的“微服务”主要指的就是RPC服务;而HTTP服…...
今日AI和商界事件(2025-02-15)
根据2025年2月15日的科技动态,以下是今日AI领域的重要事件及相关进展总结: 1. DeepSeek日活突破3000万,开源生态加速AI普惠 里程碑意义:开源大模型DeepSeek宣布日活跃用户数突破3000万,其R1模型凭借开源策略和低成本优…...
算法题(69):搜索插入位置
审题: 需要我们在有序数组中找到等于target值的元素的下标若没有则返回target按顺序会插入的位置的索引 思路 : 我们可以使用二分查找的方法 方法一:二分查找 和普通的二分查找不同,本题若没有找到就需要返回它按顺序插入的位置的…...
在 Linux 系统中,tc(Traffic Control) QoS 常用命令简介
在 Linux 系统中,tc(Traffic Control)命令是一个强大的工具,用于配置和管理网络流量控制。以下是 tc 命令的常用功能和基本用法: 1. 查看当前队列规则 使用以下命令查看指定网络接口上的队列规则: tc qd…...
如何画产品功能图、结构图
功能图的类型 常见的功能图包括数据流图、用例图、活动图、状态图、类图、组件图、部署图等等,不同的应用场景和目标下,需要确定不同的功能图类型。 数据流图 用例图 状态图 类图 组件图 组件图是由软件系统、组件和组件之间的关系组成的图形…...
4090单卡挑战DeepSeek r1 671b:尝试量化后的心得的分享
引言: 最近,DeepSeek-R1在完全开源的背景下,与OpenAI的O1推理模型展开了激烈竞争,引发了广泛关注。为了让更多本地用户能够运行DeepSeek,我们成功将R1 671B参数模型从720GB压缩至131GB,减少了80%ÿ…...
SpringBoot速成(12)文章分类P15-P19
1.新增文章分类 1.Postman登录不上,可以从头registe->login一个新的成员:注意,跳转多个url时,post/get/patch记得修改成controller类中对应方法上写的 2.postman运行成功: 但表中不更新:细节有问题: c是…...
C++17中的clamp函数
一、std::clamp() 其实在前面简单介绍过这个函数,但当时只是一个集中的说明,为了更好的理解std::clamp的应用,本篇再详细进行阐述一次。std::clamp在C17中其定义的方式为: template< class T > constexpr const T& cl…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...
el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...
Linux系统部署KES
1、安装准备 1.版本说明V008R006C009B0014 V008:是version产品的大版本。 R006:是release产品特性版本。 C009:是通用版 B0014:是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存:1GB 以上 硬盘…...
LOOI机器人的技术实现解析:从手势识别到边缘检测
LOOI机器人作为一款创新的AI硬件产品,通过将智能手机转变为具有情感交互能力的桌面机器人,展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家,我将全面解析LOOI的技术实现架构,特别是其手势识别、物体识别和环境…...
如何配置一个sql server使得其它用户可以通过excel odbc获取数据
要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据,你需要完成以下配置步骤: ✅ 一、在 SQL Server 端配置(服务器设置) 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到:SQL Server 网络配…...
CppCon 2015 学习:Time Programming Fundamentals
Civil Time 公历时间 特点: 共 6 个字段: Year(年)Month(月)Day(日)Hour(小时)Minute(分钟)Second(秒) 表示…...
