web安全测试渗透案例知识点总结(下)——小白入狱

目录
- @[TOC](目录)
- 一、更多详细的实际案例教程
- 案例1:文件上传漏洞利用
- 案例2:目录遍历(Path Traversal)漏洞检测
- 案例3:暴力破解登录密码
- 案例4:命令注入漏洞
- 案例5:身份认证绕过(Password Reset Bypass)
- 案例6:弱加密存储(Weak Encryption)
- 案例7:子域名接管(Subdomain Takeover)
- 案例8:API接口未授权访问
- 案例9:信息泄露(Sensitive Data Exposure)
目录
- @[TOC](目录)
- 一、更多详细的实际案例教程
- 案例1:文件上传漏洞利用
- 案例2:目录遍历(Path Traversal)漏洞检测
- 案例3:暴力破解登录密码
- 案例4:命令注入漏洞
- 案例5:身份认证绕过(Password Reset Bypass)
- 案例6:弱加密存储(Weak Encryption)
- 案例7:子域名接管(Subdomain Takeover)
- 案例8:API接口未授权访问
- 案例9:信息泄露(Sensitive Data Exposure)
一、更多详细的实际案例教程
案例1:文件上传漏洞利用
目标:利用文件上传功能执行恶意代码。
步骤:
-
信息收集:
- 查找网站中的文件上传入口(如用户头像上传、图片上传)。
-
漏洞检测:
- 上传一个无害的文件,如
.txt文件,确认上传路径或系统对文件格式的限制。 - 尝试上传一个包含PHP代码的文件,如
webshell.php,内容如下:<?php echo "File uploaded"; system($_GET['cmd']); ?> - 如果文件上传成功,并且可以通过
webshell.php访问文件,那么说明存在文件上传漏洞。
- 上传一个无害的文件,如
-
漏洞利用:
- 访问文件,并通过
cmd参数执行命令,例如:http://example.com/uploads/webshell.php?cmd=ls - 如果可以执行命令,可以进一步获取文件目录、读取敏感文件或提权。
- 访问文件,并通过
防御措施:
- 限制上传文件类型,仅允许图片等特定格式。
- 对上传目录设置权限,防止执行文件中的代码。
案例2:目录遍历(Path Traversal)漏洞检测
目标:通过路径遍历漏洞访问服务器上的敏感文件,如/etc/passwd。
步骤:
-
信息收集:
- 寻找URL中的文件路径参数(如
page=about.html)。
- 寻找URL中的文件路径参数(如
-
漏洞检测:
- 修改参数,尝试输入
../来访问上级目录,如page=../../etc/passwd。 - 如果服务器未正确过滤,可能会返回系统文件内容,验证存在路径遍历漏洞。
- 修改参数,尝试输入
-
漏洞利用:
- 继续遍历目录结构,查找其他敏感文件,如
/etc/shadow、配置文件等。
- 继续遍历目录结构,查找其他敏感文件,如
防御措施:
- 严格限制用户输入路径,过滤
../等特殊字符。 - 使用绝对路径,避免接受用户输入的相对路径。
案例3:暴力破解登录密码
目标:通过暴力破解方法获取用户登录密码。
步骤:
-
信息收集:
- 获取登录页面URL和参数,确认是否有失败次数限制或验证码机制。
-
漏洞检测:
- 使用工具Hydra或Burp Suite的Intruder模块进行暴力破解。
- 将用户名固定,尝试不同的密码组合。
hydra -l admin -P /path/to/passwords.txt http://example.com/login.php
-
漏洞利用:
- 如果找到正确的密码,则可以进入管理员账户。
防御措施:
- 实施强密码策略,增加密码复杂性。
- 添加验证码,限制尝试次数,使用账户锁定机制。
案例4:命令注入漏洞
目标:通过输入恶意命令,使服务器执行未授权操作。
步骤:
-
信息收集:
- 查找可以输入系统命令的接口,如IP地址的ping检测、域名解析等。
-
漏洞检测:
- 在输入框中输入
127.0.0.1; ls或127.0.0.1 && ls。 - 如果服务器返回目录列表,说明存在命令注入漏洞。
- 在输入框中输入
-
漏洞利用:
- 利用漏洞执行其他系统命令,获取系统信息或进一步尝试提权。
防御措施:
- 不接受用户可控的输入作为命令执行内容。
- 使用白名单限制输入内容,或通过脚本语言的安全模式运行系统命令。
案例5:身份认证绕过(Password Reset Bypass)
目标:通过未授权的方式重置用户密码。
步骤:
-
信息收集:
- 找到密码重置页面,观察是否有邮箱或安全问题验证环节。
-
漏洞检测:
- 在密码重置请求中,拦截并修改验证信息,如更改邮箱参数为攻击者的邮箱。
- 检查系统是否仅依赖可修改的参数进行重置验证。
-
漏洞利用:
- 如果系统没有二次验证,通过修改后的邮箱链接重置密码,登录目标账户。
防御措施:
- 在密码重置流程中增加身份验证环节,确保邮箱不易被篡改。
- 生成单一有效的重置链接并设置过期时间。
案例6:弱加密存储(Weak Encryption)
目标:通过加密弱点破解密码或敏感信息。
步骤:
-
信息收集:
- 查找服务器中的密码存储方式,确认是否采用MD5、SHA-1等不安全的加密方法。
-
漏洞检测:
- 使用哈希破解工具如John the Ripper或hashcat暴力破解哈希密码。
- 使用预先生成的彩虹表对已知哈希值进行匹配。
-
漏洞利用:
- 获取明文密码后,尝试登录或进一步访问敏感信息。
防御措施:
- 使用强加密算法(如bcrypt、Argon2)存储密码。
- 添加盐值(Salt)增加密码的安全性。
案例7:子域名接管(Subdomain Takeover)
目标:接管一个未使用的子域名,冒充官方网站。
步骤:
-
信息收集:
- 使用工具Sublist3r或dnsrecon查找目标网站的所有子域名。
- 检查子域是否指向不存在的外部资源(如GitHub、Heroku等)。
-
漏洞检测:
- 访问子域名,观察是否出现404错误或相关错误页面,表示未被使用。
- 若未指向有效资源,则可能存在子域接管风险。
-
漏洞利用:
- 在子域指向的服务商平台上创建具有同名的服务,实现子域名接管。
防御措施:
- 定期检查DNS记录,移除未使用的子域名解析。
- 不要将子域名指向暂时不使用的外部资源。
案例8:API接口未授权访问
目标:通过未授权的API接口获取敏感信息。
步骤:
-
信息收集:
- 查找系统中可访问的API接口(如/api/users/1)。
-
漏洞检测:
- 直接访问API接口,观察是否能获取敏感数据。
- 尝试在请求头中加入不同的参数,如User-Agent、Referer等,检查访问权限控制是否严格。
-
漏洞利用:
- 获取用户敏感信息后,利用其他API接口进行操作,如账户修改或数据导出。
防御措施:
- 实施严格的身份验证和权限管理,确保每个接口仅允许特定用户访问。
- 不要将敏感信息直接暴露在未经授权的API接口中。
案例9:信息泄露(Sensitive Data Exposure)
目标:通过未保护的文件或信息泄露敏感数据。
步骤:
-
信息收集:
- 使用Dirbuster或GoBuster查找隐藏文件或目录。
- 查找敏感文件,如
.git目录、配置文件(如config.php)、备份文件等。
-
漏洞检测:
- 访问这些文件或目录,观察是否包含敏感数据(如数据库连接信息、API密钥)。
-
漏洞利用:
- 获取敏感信息后,尝试进一步攻击,如连接数据库或调用受保护的API。
防御措施:
- 不将敏感文件暴露在Web根目录,定期检查并删除不必要的文件。
- 使用访问控制限制敏感信息的访问权限。
以下是针对上述内容的概括数据表,列出了每种漏洞的名称、目标、检测步骤、利用方法以及防御措施。
| 漏洞类型 | 目标描述 | 检测步骤描述 | 利用方法 | 防御措施 |
|---|---|---|---|---|
| 文件上传漏洞 | 利用文件上传功能执行恶意代码 | 上传文件测试格式限制,尝试上传包含代码的文件 | 执行恶意代码或命令 | 限制文件类型、权限配置 |
| 目录遍历漏洞 | 通过路径遍历访问敏感文件 | 修改路径参数为../检测是否可访问上级目录 | 获取系统敏感文件信息 | 限制输入路径、过滤特殊字符 |
| 暴力破解登录 | 通过暴力破解获取用户密码 | 使用Hydra等工具进行密码组合测试 | 使用破解得到的密码登录 | 强密码策略、验证码、限制尝试次数 |
| 命令注入漏洞 | 通过命令注入执行未授权系统命令 | 在输入框中加入命令符号(如;或&&) | 执行系统命令获取系统信息 | 限制用户输入、不使用动态命令构造 |
| 密码重置绕过 | 通过绕过验证重置用户密码 | 修改重置请求中的邮箱参数检测是否存在二次验证 | 利用篡改后的链接重置密码 | 增加验证环节,防止参数篡改 |
| 弱加密存储 | 破解弱加密的敏感信息 | 查找是否使用MD5或SHA-1等不安全的哈希算法 | 破解哈希获取明文密码 | 使用强加密算法,如bcrypt或Argon2 |
| 子域名接管 | 接管未使用的子域名 | 查找未使用的子域名并验证其是否存在404错误 | 在外部平台上创建相同名称的服务实现接管 | 定期检查并删除未用子域名 |
| 未授权API访问 | 利用未授权的API接口获取敏感数据 | 直接访问接口或修改请求头进行访问测试 | 获取敏感数据,尝试进一步访问 | 实施严格的身份验证和权限管理 |
| 信息泄露 | 通过未保护的文件访问敏感信息 | 使用工具查找隐藏目录或文件(如.git或备份文件) | 获取敏感文件内容,尝试进一步攻击 | 不将敏感文件暴露在Web目录,设置访问权限 |
相关文章:
web安全测试渗透案例知识点总结(下)——小白入狱
目录 [TOC](目录)一、更多详细的实际案例教程案例1:文件上传漏洞利用案例2:目录遍历(Path Traversal)漏洞检测案例3:暴力破解登录密码案例4:命令注入漏洞案例5:身份认证绕过(Passwor…...
【专题】数据库的安全性
1. 数据库安全性概述 数据库存在的不安全因素: 非授权用户对数据库的恶意存取和破坏; 数据库中重要或敏感的数据被泄露; 安全环境的脆弱性。 数据库的安全性与计算机系统的安全性,包括计算机硬件、操作系统、网络系统等的安全…...
【含开题报告+文档+源码】基于Java的房屋租赁服务系统设计与实现
开题报告 随着城市化进程的加速和人口流动性的增加,租房需求不断增长。传统的租赁方式往往存在信息不对称、流程不规范等问题,使得租户和房东的租赁体验不佳。而而房屋租赁系统能够提供便捷、高效的租赁服务,满足租户和房东的需求。房屋租赁…...
数据结构模拟题[十]
数据结构试卷(十) 一、选择题 (24 分) 1.下列程序段的时间复杂度为( )。 i0 ,s0; while (s<n) {ssi ;i ;} (A) O(n 1/2 ) (B) O(n 1/3 ) (C) O(n) (D) O(n 2 ) …...
Java基于微信小程序的美食推荐系统(附源码,文档)
博主介绍:✌程序猿徐师兄、8年大厂程序员经历。全网粉丝15w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…...
基于CNN-RNN的影像报告生成
项目源码获取方式见文章末尾! 600多个深度学习项目资料,快来加入社群一起学习吧。 《------往期经典推荐------》 项目名称 1.【PaddleNLP的FAQ问答机器人】 2.【卫星图像道路检测DeepLabV3Plus模型】 3.【GAN模型实现二次元头像生成】 4.【CNN模型实现…...
MacOS如何读取磁盘原始的扇区内容,恢复误删除的数据
MacOS 也是把磁盘当成一个文件,也是可以使用 dd来读取,命行令行如下: sudo dd if/dev/disk2 bs512 count1 skip100 ofsector_100.bin 这个就是读取 /dev/disk2这个磁盘每100这个sector, bs表示扇区大小是512. 但是你直接用读,应…...
创客匠人:打造IP陷入迷茫?20位大咖直播如何破局,实现财富增长
就在明天! 11月4日-8日,全球创始人IP领袖峰会线上启动会——《2025年知识IP创新增长训练营*20位各界大咖标杆集体赋能》直播活动,即将重磅来袭! 20位行业大咖5大篇章主题内容的强大组合,将为你逐一精彩呈现ÿ…...
视觉目标检测标注xml格式文件解析可视化 - python 实现
视觉目标检测任务,通常用 labelimage标注,对应的标注文件为xml。 该示例来源于开源项目:https://gitcode.com/DataBall/DataBall-detections-100s/overview 读取 xml 标注文件,并进行可视化示例如下: #-*-coding:ut…...
clion远程配置docker ros2
CLION与docker中的ROS2环境构建远程连接 设备前提开启SSH服务CLION配置CLION配置CLION IDE远程连接过程实现CLION SSH 远程部署 开启fastlio2debug之旅 设备前提 本地宿主机:UBUNTU 20.04 docker container:ros2_container (内置环境ROS2 humble) 通过之前的tcp连接…...
微信小程序 uniapp 腾讯地图的调用
/* 提前在您的app.json上加上这些代码 "permission": { "scope.userLocation": { "desc": "你的位置信息将用于地图中定位" } …...
OLAP平台架构演化历程
OLAP平台架构演化历程 0 导读 随着大数据的持续发展及数字化转型的兴起,大数据OLAP分析需求越来越迫切,不论是大型互联网企业,还是中小型传统企业,都在积极探索及实践OLAP引擎选型及平台架构建设,大数据技术的蓬勃发展…...
OmniGen: Unified Image Generation(代码的复现)
文章目录 论文简介模型的部署需要下载的预训练权重 模型的生成效果图像编辑的效果风格迁移的效果 总结 论文简介 OmniGen的github项目地址 OmniGen: Unified Image Generation。OmniGen 在各种图像生成任务中都表现出了卓越的性能,并可能大大超过现有扩散模型的极…...
keepalive+mysql8双主
1.概述 利用keepalived实现Mysql数据库的高可用,KeepalivedMysql双主来实现MYSQL-HA,我们必须保证两台Mysql数据库的数据完全一致,实现方法是两台Mysql互为主从关系,通过keepalived配置VIP,实现当其中的一台Mysql数据库…...
C#-基础构造函数、析构函数
一:基础的构造函数 实例化对象时 调用的函数,主要是用来初始化成员变量的。 在构造函数时,对象的初始化是自动完成的,为默认值,但为满足一些特殊数据的初始化操作。可不使用系统默认给的构造函数 基本语法ÿ…...
Ubuntu删除docker
文章目录 安装依赖1.安装操作系统:2.CPU支持 安装docker1.查看系统版本2.执行卸载 安装依赖 1.安装操作系统: 高于 Ubuntu 20.04(LTS) 版本 2.CPU支持 ARM和X86_64 安装docker 1.查看系统版本 cat /etc/*releas*uname -a2.执行卸载 检查本地dock…...
系统地介绍Qt的QtConcurrent模块
本文使用了AI生成的内容,请注意甄别! 本文系统地介绍Qt的QtConcurrent模块,它允许开发者无需使用低级线程原语(如互斥锁、读写锁、等待条件或信号量)即可编写多线程程序。下面将由浅入深地逐步介绍这一内容:…...
【进阶sql】复杂sql收集及解析【mysql】
开发时会出现,必须写一些较复杂sql的场景 可能是给会sql的客户 提供一些统计sql 或是临时需要统计数据信息但是 开发一个统计功能有来不及的情况 也可能是报表系统组件 只支持 sql统计的情况 特地记录下这些sql 作为积累 substring 截取查询出的字符串ÿ…...
达梦检查工具dmdbchk的性能
摘要: 本文介绍了dmdbchk的基础使用,例如检查信号量,其性能大约是10GB/分钟,新版本的会更快。 当数据库出问题时,可能会考虑用dmdbchk工具检查数据文件和库内部是否出现异常。对于450G的库会耗时多久? 答&…...
Docker是什么
docker是什么 docker本质docker和虚拟机的区别docker架构Docker Registry镜像仓库分类镜像仓库工作机制docker Hub docker本质 Docker 本质其实是 LXC 之类的增强版,它本身不是容器,而是容器的易用工具。容 器是 linux 内核中的技术,Docker 只…...
css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...
