网络安全护网实战:攻击手段解析与防御策略

        在网络安全领域,护网行动中对各类攻击方式和漏洞原理的掌握至关重要。本文将详细解析常见的攻击方式及其背后的漏洞原理,帮助大家提升护网技能。

一、常见攻击方式及漏洞原理

1. SQL注入漏洞

• 定义:将恶意的数据库语句注入到后台数据库去执行,本质是代码与数据不区分,用户输入的恶意数据作为命令或查询的一部分被发送到解析器执行。

• 产生原因:根本原因是程序未对用户提交的参数数据进行有效校验或过滤,恶意SQL语句拼接后被数据库执行,典型场景是用户可控参数直接拼接到SQL语句中。

• 常见挖掘方式:包括URL参数注入、POST包注入(使用Burp等工具)、利用sqlmap等自动化工具。

• 注入场景:发生在所有用户可控参数的地方,常见位置有URL路径信息、GET请求参数、HTTP请求头、POST请求参数。

• 注入判断方法:

◦ 单引号判断:添加单引号后出现错误回显则可能存在注入。

◦ AND判断:AND 1=1永真条件返回正常,AND 1=2报错则存在注入。

◦ OR判断:OR 1=1和OR 1=2返回不同结果则存在注入。

◦ XOR判断:正确语句返回错误页面,错误语句返回正确页面则存在注入。

◦ 数字加减判断:原页面与id=10-1返回不同则存在注入。

• 实际操作演示:在DVWA(分为Low、Medium、High、Impossible四个安全级别)中,设置安全级别为Low,进行永真、永假条件测试,使用order by判断字段数,使用union select进行联合查询等。常用注入语句如“1' order by 2#”“1' union select 1,2#”等。

• 不同请求方式的注入:

◦ GET请求注入:直接在URL参数中注入。

◦ POST请求注入:使用Burp Suite抓包,修改POST参数进行注入,保存请求为文本文件供sqlmap使用。

◦ sqlmap自动化注入:命令为“python sqlmap.py -r request.txt”,可自动识别注入点类型,支持多种注入技术。

2. 文件上传与文件包含漏洞

• 文件上传漏洞:攻击者上传恶意文件(如webshell)导致服务器沦陷。

• 文件包含漏洞:读取服务器本地文件内容。

• 区别:文件上传是“写入”操作,文件包含是“读取”操作。

(1)文件上传漏洞

• 产生原因:

◦ 本地上传限制不严格,例如注册时要求上传图片却允许上传PHP脚本。

◦ HTTP方法配置不当,服务器未禁用PUT等不安全方法(标准安全配置应仅允许GET/POST/HEAD)。

◦ 服务器解析漏洞,Apache/Nginx/IIS等中间件的特定版本存在解析缺陷(2019年后大部分已修复)。

◦ 文件路径截断,PHP中常见的%00截断漏洞(十六进制0×00作为字符串终止符)。

• 实战操作:

◦ 低级别漏洞利用:使用PHP一句话木马“”(密码为“xie”),上传后返回存储路径,通过中国菜刀/冰蝎/蚁剑等工具连接。

◦ 中级别绕过:服务端验证MIME类型(仅允许image/jpeg/png),可通过Burp修改Content-Type为image/jpeg(需在Hex视图修改十六进制数据)。

• 服务端验证:MIME定义了指定扩展名文件的打开方式,程序会检查上传文件的Content-Type头信息。防御要点包括设置上传目录不可执行、严格限制允许的文件类型(白名单校验)、随机化处理文件名和存储路径。

• 网络实例:如HTTP PUT攻击,构造请求上传恶意文件,响应状态码201表示成功,可通过参数执行系统命令。防护措施有Apache利用rewrite模块拦截TRACE请求,IIS通过URLScan工具禁用危险方法。

• 漏洞解析:不同服务器有不同漏洞,如Apache的右向左解析,Nginx的空字节截断,IIS的目录解析、分号解析等。

• 路径截断:利用0×00截断后续字符串,需在Burp的Hex视图中修改十六进制数据头,且有PHP版本<5.3.29、magic_quotes_gpc=OFF、仅适用于路径截断等限制条件。

(2)文件包含漏洞

• 漏洞原理与危害:开发人员将包含文件设置为变量进行动态调用,导致客户端可任意调用隔离文件,可下载服务器敏感文件,获取代码后审计发现更多漏洞。

• 高危函数:代码执行类如eval()、assert()等;文件包含类如include()、include_once()、require()、require_once()。

• 包含函数对比:require找不到文件时产生致命错误并停止脚本,include仅产生警告且脚本继续执行;require_once和include_once与前两者类似,但会检查重复包含。

• 漏洞实例演示:基础利用通过参数包含本地文件,目录穿越使用../跳转读取系统文件,敏感文件读取可通过绝对路径获取相关信息。

• 常见敏感路径:Windows系统如c:\boot.ini、c:\windows\repair\sam等;Linux系统如/etc/passwd、/etc/shadow等。

• 防御要点:严格校验包含参数是否外部可控,限制文件路径范围,实施白名单机制,避免动态包含,PHP配置中allow_url_include必须为On状态,且主要出现在PHP环境。

3. 命令执行漏洞

• DVWA低级别:黑客可随意执行系统命令,代码使用shell_exec()函数直接执行用户输入的IP地址,未对输入进行过滤或验证,根据操作系统类型拼接不同ping命令格式。攻击示例如输入“127.0.0.1&&netstat -ano”可同时执行ping和查看网络连接。

• DVWA中级别:过滤了分号;和逻辑与&&符号,但未过滤单个&符号。Command1&&Command2仅当Command1成功时才执行Command2,Command1&Command2无论Command1是否成功都会执行Command2,可使用&连接命令绕过。

• 高级别特征:过滤了大部分特殊符号,但未过滤空格和管道符|,可通过“127.0.0.1 | whoami”获取系统用户名。

• 防御方式:禁用危险函数,使用替代方案,输入过滤,及时更新框架和系统补丁。

4. 逻辑漏洞

• 分类:

◦ 水平越权:相同权限用户间的越权操作,典型场景是通过修改userID参数访问其他用户数据。

◦ 垂直越权:不同权限用户间的越权操作,典型场景是普通用户获取管理员权限。

• 发生场景:登录/注册环节(暴力破解、验证码绕过等)、后台/找回功能(密码重置漏洞等)、特殊系统(越权访问等)、留言评论(CSRF、存储型XSS等)。

• 案例:某相亲APP验证码系统存在缺陷,可拦截并暴力破解短信验证码,实现任意用户密码登录。

二、护网技能提升

1. 逻辑漏洞案例

• 绕过验证码进行任意用户注册:某相亲APP存在短信验证码获取功能缺陷,攻击者通过Burp Suite等工具抓取验证码请求,使用Intruder模块暴力破解,可能伴随短信炸弹漏洞。

• 未授权访问/目录遍历:某医院系统存在URL直接访问管理员页面漏洞,内网环境下无需账号密码即可越权访问;通过扫描后台目录可能发现敏感脚本或文件。

2. 弱口令案例

• 常见弱口令类型:账号密码相同(如admin/admin)、通用弱口令(如123456/123456)、社会工程学密码(如姓名+生日)等,整改难点在于用户不遵守规定。

• 社工获取用户权限:攻击步骤包括寻找公示密码规则的系统,通过公开信息获取学号名单,利用特殊姓氏缩小范围,通过社交网络获取身份证信息等。防御建议为避免明示密码规则,对敏感信息脱敏处理。

• 医疗系统弱口令爆破:使用Burp Intruder对医生账号批量测试,成功匹配多个弱口令账号,获取权限后可进一步渗透。

三、问答阶段

技术问题:DVWA平台搭建时遇到exec函数禁用问题,可能与PHP版本有关(5.2可用但5.4不可用)。
解决方案:建议保持PHP5.2环境或检查php.ini的disable_functions配置。

四、知识小结
|知识点|核心内容|实操演示/案例|防御措施|难度系数|
|---|---|---|---|---|
|SQL注入漏洞|恶意SQL语句注入后台数据库执行,本质是代码与数据不区分|DVWA平台演示:单引号判断注入点、and 1=1永真条件测试、SQLmap自动化工具使用|参数校验与过滤、预编译语句、最小权限原则|★★★☆|
|文件上传漏洞|上传恶意脚本文件获取服务器权限,4大成因:本地限制不严、HTTP方法配置不当、服务器解析漏洞、%00截断|低级别直接上传PHP木马、中级别修改Content-Type绕过、PUT方法上传案例|目录不可执行、白名单校验、随机化文件名|★★★★|
|文件包含漏洞|动态调用文件时未过滤路径,关键函数:include/require、include_once/require_once|读取/etc/passwd、查看PHP配置文件、目录遍历攻击对比|禁用危险函数、路径白名单、关闭allow_url_include|★★★☆|
|命令执行漏洞|系统命令被恶意执行,过滤绕过技巧:&&和&区别、管道符|利用DVWA三级难度测试、SAP Netweaver漏洞、Struts2框架漏洞|禁用危险函数、输入过滤、框架补丁更新|★★★★|
|逻辑漏洞|业务流设计缺陷,类型:水平越权(同权限)、垂直越权(跨权限)|相亲APP验证码爆破、未授权访问后台、短信炸弹攻击|权限二次校验、验证码防爆破、会话超时机制|★★★★☆|
|弱口令漏洞|默认凭证/简单密码,社工攻击路径:学号+身份证后六位、密码喷洒攻击|admin/admin测试、123456密码爆破、高校系统社工案例|强制复杂度策略、多因素认证、登录失败锁定|★★☆|
|工具链|渗透测试工具集:Burp Suite抓包、SQLmap自动化注入、菜刀/冰蝎连接木马|代理设置与数据包修改、POST请求注入技巧、木马连接故障处理|网络流量监控、WAF防护、异常行为检测|★★★★|

 

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

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

相关文章

使用alist+RaiDrive+webdav将百度夸克网盘变为本地电脑磁盘方法教程

由于每天都要操作网盘不下十几次&#xff0c;频繁启动网盘比较麻烦。 使用百度夸克网盘的webdav服务可以将百度夸克网盘挂载到本地电脑上&#xff0c;就像操作本地电脑硬盘一样操作网盘&#xff0c;非常方便。我们以alistraidrive为例演示。 首先打开百度网盘pan.baidu.com&a…

C# 入门学习教程(二)

文章目录一、操作符详解1、操作符概览2、操作符的本质3、操作符的优先级4、同级操作符的运算顺序5、 各类操作符的示例二、表达式&#xff0c;语句详解1. 表达式的定义2. 各类表达式概览3. 语句的定义4. 语句详解一、操作符详解 C# 中的操作符是用于执行程序代码运算的符号&am…

Linux内核深度解析:IPv4策略路由的核心实现与fib_rules.c源码剖析

深入探索Linux网络栈的规则引擎,揭秘策略路由如何通过多级路由表实现复杂流量控制 在Linux网络栈中,路由决策远不止简单的目的地址匹配。策略路由(Policy Routing)允许根据源地址、TOS值、端口等复杂条件选择不同的路由路径。本文将深入剖析实现这一功能的核心源码——net/…

【UE5】虚幻引擎的运行逻辑

UE5的运行逻辑可以分为引擎启动流程和游戏运行流程两个部分。引擎启动流程一、平台入口&引擎主流程初始化1、系统入口不同的平台会有不同的入口。在Windows平台&#xff0c;入口是Launch模块下的\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp文件中的W…

大数据学习1:Hadoop单机版环境搭建

1.基础知识介绍 Flume采集日志。Sqoop采集结构化数据&#xff0c;比如采集数据库。 存储到HDFS上。 YARN资源调度&#xff0c;每台服务器上分配多少资源。 Hive是基于Hadoop的一个数据仓库工具&#xff0c;提供SQL查询功能&#xff0c;能将SQL语句转变成MapReduce任务来执行…

深入理解PHP中的命名空间和自动加载机制

首先&#xff0c;让我们来讨论命名空间。PHP的命名空间是一种对代码进行逻辑分组的机制&#xff0c;它允许开发者将函数、类和常量封装在不同的命名空间中。这样做的好处在于可以避免全局范围内的名称冲突。例如&#xff0c;你可能在你的项目中使用了一个名为"Database&qu…

学习:JS[3]数组的增删改查+函数+作用域

一.操作数组1.改2.增arr.push(新增的内容):将一个或多个元素添加到数组的结尾arr.unshift(新增的内容):方法将一个或多个元素添加到数组的开头,并返回该数组的长度3.删除arr.pop():方法从数组中删除最后一个元素,不带参数,并返回元素的值arr.shift():方法从数组中删除第一个元素…

从0到1搭建ELK日志收集平台

ELK是什么 ELK 是指 Elasticsearch、Logstash 和 Kibana 这三种工具的组合&#xff0c;通常用于日志分析、数据搜索和可视化。它们分别承担不同的功能&#xff0c;形成了强大的数据处理和分析平台&#xff1a; Elasticsearch&#xff1a;一个分布式搜索引擎&#xff0c;擅长实时…

Qt:图片切割

void MainWindow::on_action_slice_triggered() {QDialog *dialog new QDialog(this);dialog->setWindowTitle("切割");dialog->setFixedSize(200, 150);QVBoxLayout *vbox new QVBoxLayout;QHBoxLayout *hbox new QHBoxLayout;QLabel *label new QLabel(&…

BabelDOC,一个专为学术PDF文档设计的翻译和双语对比工具

你是否也有这样的困境&#xff0c;面对一篇学术论文&#xff0c;即使英语水平不错&#xff0c;仍需反复查词典&#xff0c;尤其是遇到专业术语和复杂长句&#xff0c;翻译软件又常常不能很好地处理学术PDF的排版&#xff0c;导致翻译结果混乱不堪。 现在&#xff0c;解决你烦恼…

Python之面向对象和类

一.类1.类的定义&#xff1a;class 类名&#xff1a;“”“注释 ”“”pass2.实例的创建&#xff1a;实例 类名(parameterlist)parameterlist&#xff1a;定义类时__init__()方法的参数&#xff0c;如果该方法只有一个self参数&#xff0c;parameterlist可以省略class Goose()…

【力扣 困难 C】329. 矩阵中的最长递增路径

目录 题目 解法一 题目 待添加 解法一 int max(int a, int b) {return a > b ? a : b; }int search(int** matrix, int m, int n, int i, int j, int (*dp)[n]) {if (dp[i][j]) {return dp[i][j];}int len 0;if (i > 0 && matrix[i - 1][j] > matrix[i]…

Blueprints - UE5的增强输入系统

一些学习笔记归档&#xff1b;增强输入系统由两部分组成&#xff1a;Input Action和Input Mapping ContextInput Action是输入操作的映射&#xff08;操作中比如有移动、跳跃等&#xff09;&#xff0c;Input Mapping Context是输入情境的映射&#xff08;对各种操作的具体按键…

Python 【技术面试题和HR面试题】➕ 动态类型、运算符、输入处理及算法编程问答

1.技术面试题 &#xff08;1&#xff09;TCP与UDP的区别是什么&#xff1f; 答&#xff1a; ①连接性&#xff1a;TCP 面向连接&#xff0c;3次握手及4次挥手&#xff0c;建立端到端的虚链路像&#xff1b;UDP 无连接&#xff0c;直接发送&#xff0c;无需预先建立连接 。 ②传…

etcd-cpp-apiv3 二次封装

接口介绍头文件#include <etcd/Client.hpp> #include <etcd/KeepAlive.hpp> #include <etcd/Response.hpp> #include <etcd/SyncClient.hpp> #include <etcd/Value.hpp> #include <etcd/Watcher.hpp>下面从功能介绍几个类的概念Value &…

【网络与系统安全】强制访问控制——Biba模型

一、模型定义与目标 提出背景&#xff1a;1977年由Ken Biba提出&#xff0c;是首个完整性安全模型&#xff0c;与BLP模型形成对偶&#xff08;BLP关注机密性&#xff0c;Biba关注完整性&#xff09;。核心目标&#xff1a;防止低完整性信息污染高完整性信息&#xff0c;避免未授…

从架构抽象到表达范式:如何正确理解系统架构中的 4C 模型20250704

&#x1f9e9; 从架构抽象到表达范式&#xff1a;如何正确理解系统架构中的 4C 模型&#xff1f; “4C”到底是架构的组成结构&#xff0c;还是架构图的表现方式&#xff1f;这类看似细节的问题&#xff0c;其实直击了我们在系统设计中认知、表达与落地之间的张力。 &#x1f5…

Debian10安装Mysql5.7.44 笔记250707

Debian10安装Mysql5.7.44 笔记250707 1️⃣ 参考 1 在Debian 10 (Buster) 上安装 MySQL 5.7.44 的步骤如下&#xff1a; 1. 添加 MySQL APT 仓库 MySQL 官方提供了包含特定版本的仓库&#xff1a; # 下载仓库配置包 wget https://dev.mysql.com/get/mysql-apt-config_0.8.28…

20250706-6-Docker 快速入门(上)-镜像是什么?_笔记

一、镜像是什么&#xfeff;1. 一个分层存储的文件&#xff0c;不是一个单一的文件分层结构: 与传统ISO文件不同&#xff0c;Docker镜像由多个文件组成&#xff0c;采用分层存储机制存储优势: 每层可独立复用&#xff0c;显著减少磁盘空间占用&#xff0c;例如基础层可被多个镜…

[SystemVerilog] Clocking

SystemVerilog Clocking用法详解 SystemVerilog 的 clocking 块&#xff08;Clocking Block&#xff09;是一种专门用于定义信号时序行为的构造&#xff0c;主要用于验证环境&#xff08;如 UVM&#xff09;中&#xff0c;以精确控制信号的采样和驱动时序。clocking 块通过将信…