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

在这里插入图片描述

目录

    • @[TOC](目录)
    • 一、更多详细的实际案例教程
      • 案例1:文件上传漏洞利用
      • 案例2:目录遍历(Path Traversal)漏洞检测
      • 案例3:暴力破解登录密码
      • 案例4:命令注入漏洞
      • 案例5:身份认证绕过(Password Reset Bypass)
      • 案例6:弱加密存储(Weak Encryption)
      • 案例7:子域名接管(Subdomain Takeover)
      • 案例8:API接口未授权访问
      • 案例9:信息泄露(Sensitive Data Exposure)

一、更多详细的实际案例教程

案例1:文件上传漏洞利用

目标:利用文件上传功能执行恶意代码。

步骤

  1. 信息收集

    • 查找网站中的文件上传入口(如用户头像上传、图片上传)。
  2. 漏洞检测

    • 上传一个无害的文件,如.txt文件,确认上传路径或系统对文件格式的限制。
    • 尝试上传一个包含PHP代码的文件,如webshell.php,内容如下:
      <?php echo "File uploaded"; system($_GET['cmd']); ?>
      
    • 如果文件上传成功,并且可以通过webshell.php访问文件,那么说明存在文件上传漏洞。
  3. 漏洞利用

    • 访问文件,并通过cmd参数执行命令,例如:
      http://example.com/uploads/webshell.php?cmd=ls
      
    • 如果可以执行命令,可以进一步获取文件目录、读取敏感文件或提权。

防御措施

  • 限制上传文件类型,仅允许图片等特定格式。
  • 对上传目录设置权限,防止执行文件中的代码。

案例2:目录遍历(Path Traversal)漏洞检测

目标:通过路径遍历漏洞访问服务器上的敏感文件,如/etc/passwd

步骤

  1. 信息收集

    • 寻找URL中的文件路径参数(如page=about.html)。
  2. 漏洞检测

    • 修改参数,尝试输入../来访问上级目录,如page=../../etc/passwd
    • 如果服务器未正确过滤,可能会返回系统文件内容,验证存在路径遍历漏洞。
  3. 漏洞利用

    • 继续遍历目录结构,查找其他敏感文件,如/etc/shadow、配置文件等。

防御措施

  • 严格限制用户输入路径,过滤../等特殊字符。
  • 使用绝对路径,避免接受用户输入的相对路径。

案例3:暴力破解登录密码

目标:通过暴力破解方法获取用户登录密码。

步骤

  1. 信息收集

    • 获取登录页面URL和参数,确认是否有失败次数限制或验证码机制。
  2. 漏洞检测

    • 使用工具Hydra或Burp Suite的Intruder模块进行暴力破解。
    • 将用户名固定,尝试不同的密码组合。
      hydra -l admin -P /path/to/passwords.txt http://example.com/login.php
      
  3. 漏洞利用

    • 如果找到正确的密码,则可以进入管理员账户。

防御措施

  • 实施强密码策略,增加密码复杂性。
  • 添加验证码,限制尝试次数,使用账户锁定机制。

案例4:命令注入漏洞

目标:通过输入恶意命令,使服务器执行未授权操作。

步骤

  1. 信息收集

    • 查找可以输入系统命令的接口,如IP地址的ping检测、域名解析等。
  2. 漏洞检测

    • 在输入框中输入127.0.0.1; ls127.0.0.1 && ls
    • 如果服务器返回目录列表,说明存在命令注入漏洞。
  3. 漏洞利用

    • 利用漏洞执行其他系统命令,获取系统信息或进一步尝试提权。

防御措施

  • 不接受用户可控的输入作为命令执行内容。
  • 使用白名单限制输入内容,或通过脚本语言的安全模式运行系统命令。

案例5:身份认证绕过(Password Reset Bypass)

目标:通过未授权的方式重置用户密码。

步骤

  1. 信息收集

    • 找到密码重置页面,观察是否有邮箱或安全问题验证环节。
  2. 漏洞检测

    • 在密码重置请求中,拦截并修改验证信息,如更改邮箱参数为攻击者的邮箱。
    • 检查系统是否仅依赖可修改的参数进行重置验证。
  3. 漏洞利用

    • 如果系统没有二次验证,通过修改后的邮箱链接重置密码,登录目标账户。

防御措施

  • 在密码重置流程中增加身份验证环节,确保邮箱不易被篡改。
  • 生成单一有效的重置链接并设置过期时间。

案例6:弱加密存储(Weak Encryption)

目标:通过加密弱点破解密码或敏感信息。

步骤

  1. 信息收集

    • 查找服务器中的密码存储方式,确认是否采用MD5、SHA-1等不安全的加密方法。
  2. 漏洞检测

    • 使用哈希破解工具如John the Ripper或hashcat暴力破解哈希密码。
    • 使用预先生成的彩虹表对已知哈希值进行匹配。
  3. 漏洞利用

    • 获取明文密码后,尝试登录或进一步访问敏感信息。

防御措施

  • 使用强加密算法(如bcrypt、Argon2)存储密码。
  • 添加盐值(Salt)增加密码的安全性。

案例7:子域名接管(Subdomain Takeover)

目标:接管一个未使用的子域名,冒充官方网站。

步骤

  1. 信息收集

    • 使用工具Sublist3r或dnsrecon查找目标网站的所有子域名。
    • 检查子域是否指向不存在的外部资源(如GitHub、Heroku等)。
  2. 漏洞检测

    • 访问子域名,观察是否出现404错误或相关错误页面,表示未被使用。
    • 若未指向有效资源,则可能存在子域接管风险。
  3. 漏洞利用

    • 在子域指向的服务商平台上创建具有同名的服务,实现子域名接管。

防御措施

  • 定期检查DNS记录,移除未使用的子域名解析。
  • 不要将子域名指向暂时不使用的外部资源。

案例8:API接口未授权访问

目标:通过未授权的API接口获取敏感信息。

步骤

  1. 信息收集

    • 查找系统中可访问的API接口(如/api/users/1)。
  2. 漏洞检测

    • 直接访问API接口,观察是否能获取敏感数据。
    • 尝试在请求头中加入不同的参数,如User-Agent、Referer等,检查访问权限控制是否严格。
  3. 漏洞利用

    • 获取用户敏感信息后,利用其他API接口进行操作,如账户修改或数据导出。

防御措施

  • 实施严格的身份验证和权限管理,确保每个接口仅允许特定用户访问。
  • 不要将敏感信息直接暴露在未经授权的API接口中。

案例9:信息泄露(Sensitive Data Exposure)

目标:通过未保护的文件或信息泄露敏感数据。

步骤

  1. 信息收集

    • 使用Dirbuster或GoBuster查找隐藏文件或目录。
    • 查找敏感文件,如.git目录、配置文件(如config.php)、备份文件等。
  2. 漏洞检测

    • 访问这些文件或目录,观察是否包含敏感数据(如数据库连接信息、API密钥)。
  3. 漏洞利用

    • 获取敏感信息后,尝试进一步攻击,如连接数据库或调用受保护的API。

防御措施

  • 不将敏感文件暴露在Web根目录,定期检查并删除不必要的文件。
  • 使用访问控制限制敏感信息的访问权限。

以下是针对上述内容的概括数据表,列出了每种漏洞的名称、目标、检测步骤、利用方法以及防御措施。

漏洞类型目标描述检测步骤描述利用方法防御措施
文件上传漏洞利用文件上传功能执行恶意代码上传文件测试格式限制,尝试上传包含代码的文件执行恶意代码或命令限制文件类型、权限配置
目录遍历漏洞通过路径遍历访问敏感文件修改路径参数为../检测是否可访问上级目录获取系统敏感文件信息限制输入路径、过滤特殊字符
暴力破解登录通过暴力破解获取用户密码使用Hydra等工具进行密码组合测试使用破解得到的密码登录强密码策略、验证码、限制尝试次数
命令注入漏洞通过命令注入执行未授权系统命令在输入框中加入命令符号(如;&&执行系统命令获取系统信息限制用户输入、不使用动态命令构造
密码重置绕过通过绕过验证重置用户密码修改重置请求中的邮箱参数检测是否存在二次验证利用篡改后的链接重置密码增加验证环节,防止参数篡改
弱加密存储破解弱加密的敏感信息查找是否使用MD5或SHA-1等不安全的哈希算法破解哈希获取明文密码使用强加密算法,如bcrypt或Argon2
子域名接管接管未使用的子域名查找未使用的子域名并验证其是否存在404错误在外部平台上创建相同名称的服务实现接管定期检查并删除未用子域名
未授权API访问利用未授权的API接口获取敏感数据直接访问接口或修改请求头进行访问测试获取敏感数据,尝试进一步访问实施严格的身份验证和权限管理
信息泄露通过未保护的文件访问敏感信息使用工具查找隐藏目录或文件(如.git或备份文件)获取敏感文件内容,尝试进一步攻击不将敏感文件暴露在Web目录,设置访问权限

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

.NET 8 中 Entity Framework Core 的使用

本文代码&#xff1a;https://download.csdn.net/download/hefeng_aspnet/89935738 概述 Entity Framework Core (EF Core) 已成为 .NET 开发中数据访问的基石工具&#xff0c;为开发人员提供了强大而多功能的解决方案。随着 .NET 8 和 C# 10 中引入的改进&#xff0c;开发人…

后端java——如何为你的网页设置一个验证码

本文通过HUTOOL实现&#xff1a;Hutool参考文档Hutool&#xff0c;Java工具集https://hutool.cn/docs/#/ 1、工具的准备 如果我们通过hutool来实现这个功能&#xff0c;我们需要提前安装hutool的jar包。 下载地址&#xff1a;Central Repository: cn/hutool/hutool-all/5.8.…

Java面试经典 150 题.P189. 轮转数组(006)

本题来自&#xff1a;力扣-面试经典 150 题 面试经典 150 题 - 学习计划 - 力扣&#xff08;LeetCode&#xff09;全球极客挚爱的技术成长平台https://leetcode.cn/studyplan/top-interview-150/ 题解&#xff1a; class Solution {public void rotate(int[] nums, int k) {…

Cesium基础-(Entity)-(ellipsoid)

里边包含Vue、React框架代码详细步骤、以及代码详细解释 7、ellipsoid 球体与椭球体 Ellipsoid(椭球体)是 Cesium 中用来表示地球或其他天体形状的几何对象。在三维空间中,椭球体是一个被拉伸或压缩的球体,它由三个半径定义:沿着 x、y 和 z 轴的半径。这些半径确定了椭球体…

nvm详解

本文借鉴转载于 nvm文档手册 文章目录 1.nvm是什么&#xff1f;2.nvm安装2.1 window上安装下载链接安装步骤 2.2 Mac上安装使用homebrew 安装 nvm 3.nvm使用指令 1.nvm是什么&#xff1f; nvm&#xff08;Node Version Manager&#xff09;是一个用于管理和切换不同版本 Node.…

【辽宁】《辽宁省省级政务信息化建设项目预算支出标准规定(试行)》(辽财预〔2021〕54号)-省市费用标准解读系列04

《辽宁省省级政务信息化建设项目预算支出标准规定&#xff08;试行&#xff09;》&#xff08;辽财预〔2021〕54号&#xff09;是由辽宁省财政厅和辽宁省信息中心于2021年发布应用的信息化建设项目预算支出标准。我司基于专业第三方信息化项目造价机构角度&#xff0c;从标准创…

基于vue3和elementPlus的el-tree组件,实现树结构穿梭框,支持数据回显和懒加载

一、功能 功能描述 数据双向穿梭&#xff1a;支持从左侧向右侧转移数据&#xff0c;以及从右侧向左侧转移数据。懒加载支持&#xff1a;支持懒加载数据&#xff0c;适用于大数据量的情况。多种展示形式&#xff1a;右侧列表支持以树形结构或列表形式展示。全选与反选&#xf…

Python数据分析案例61——信贷风控评分卡模型(A卡)(scorecardpy 全面解析)

案例背景 虽然在效果上&#xff0c;传统的逻辑回归模型通常不如现代的机器学习模型&#xff0c;但在风控领域&#xff0c;解释性至关重要。逻辑回归的解释性是这些“黑箱”模型所无法比拟的&#xff0c;因此&#xff0c;研究传统的评分卡模型依然是有意义的。 传统的评分卡模型…

Canvas 教程(一)

目录 一、初体验 二、通过js的方式创建canvas 三、为什么推荐属性的方式设置canvas的宽高&#xff1f; 四、常见画笔API 4.1 画直线 &#x1f536; 步骤 &#x1fae2; 小练习 4.2 线条的样式 4.2.1 线条的宽度设置 &#x1f536; API 4.2.2 线条的颜色设置 &#…

[CISCN 2019华北]PWN1-好久不见7

Partial RELRO 表示部分 RELRO 保护已启用。在这种情况下&#xff0c;只有某些部分&#xff08;如 GOT 中的只读部分&#xff09;是只读的。 NX enabled 表示这个二进制文件启用了 NX 保护&#xff0c;数据段是不可执行的。这可以防止某些类型的代码注入攻击。 这里是ida识别…

Leetcode 64. 最小路径和 动态规划+空间优化

原题链接&#xff1a;Leetcode 64. 最小路径和 二维数据 class Solution { public:int minPathSum(vector<vector<int>>& grid) {int m grid.size();int n grid[0].size();int dp[m][n];dp[0][0] grid[0][0];for (int j 1; j < n; j)dp[0][j] dp[0][…

教你一个免费把PDF产品宣传册转化为翻页电子产品宣传册的方法

在这个数字化时代&#xff0c;电子宣传册已经成为企业推广产品的重要手段。相比于传统的纸质宣传册&#xff0c;电子宣传册具有更高的互动性和传播效率。那么&#xff0c;如何将现有的PDF产品宣传册转化为具有翻页效果的电子宣传册呢&#xff1f;本文将为您详细介绍一种免费的方…

大数阶乘求末尾0的个数

题目&#xff1a;求123…n所得数的末尾有多少个0&#xff1f;n由键盘输入&#xff0c;且1000<n<10000。 答&#xff1a;思路1&#xff1a;考虑末尾0的来源。阶乘结果末尾的零是由于因数10的存在&#xff0c;10分解质因数&#xff1a;25。在阶乘的计算中&#xff0c;偶数&…

2024最新的开源博客系统:vue3.x+SpringBoot 3.x 前后端分离

本文转载自&#xff1a;https://fangcaicoding.cn/article/54 大家好&#xff01;我是方才&#xff0c;目前是8人后端研发团队的负责人&#xff0c;拥有6年后端经验&3年团队管理经验&#xff0c;截止目前面试过近200位候选人&#xff0c;主导过单表上10亿、累计上100亿数据…

鸿蒙生态下开发挑战-鸿蒙低代码开发工具展望及优势

鸿蒙生态下开发挑战 在鸿蒙生态下开发时&#xff0c;开发者可能会遇到多方面的挑战&#xff0c;这些挑战主要涉及开发工具、技术难度、生态竞争以及市场定位等方面。以下是对这些挑战的详细分析&#xff1a; 一、开发工具不完善 尽管鸿蒙系统的开发工具DevEco Studio在逐步完…

JavaScript的迭代器和生成器

1. 迭代器Iterator 1. 基本概念 JavaScript 表示集合的对象大致有Object&#xff0c;Array&#xff0c;Map&#xff0c;Set四种&#xff0c;并且这四种类型的数据之间可以相互以成员嵌套&#xff08;如Array的成员可以是Object&#xff0c;而Map又可以嵌入Object的成员中&am…

深度学习常用开源数据集介绍【持续更新】

DIV2K 介绍&#xff1a;DIV2K是一个专为 图像超分辨率&#xff08;SR&#xff09; 任务设计的高质量数据集&#xff0c;广泛应用于计算机视觉领域的研究和开发。它包含800张高分辨率&#xff08;HR&#xff09;训练图像和100张高分辨率验证图像&#xff0c;每张图像都具有极高…

Pinia-状态管理

Pinia-状态管理 特点&#xff1a; 1. 轻量和模块化 Pinia 是一个轻量级的状态管理库&#xff0c;支持模块化管理&#xff0c;即可以将应用的状态分成多个 store 以实现更好的组织。使用 Pinia&#xff0c;可以定义多个 store&#xff0c;每个 store 都是一个独立的模块&#x…

向量模型Jina Embedding: 从v1到v3论文笔记

文章目录 Jina Embedding: 从v1到v3Jina Embedding v1数据集准备训练过程 Jina Embedding v2预训练修改版BERT在文本对上微调在Hard Negatives上微调 Jina Embedding v2 双语言预训练修改版BERT在文本对上微调用多任务目标微调 Jina Embedding v3预训练在文本对上微调训练任务相…

修改HarmonyOS鸿蒙图标和名字,打包后安装到真机,应用图标丢失变成透明,修改名字也不生效,还是默认的labeL解决方案教程

HarmonyOS鸿蒙打包hap 安装应用到桌面没有图标&#xff0c;用hdc安装到真机&#xff0c;打包后应用图标丢失变成透明&#xff0c;名字也还是默认的label的bug&#xff0c;以下是解决方案 以下是修改方案&#xff1a; 1、修改应用名字&#xff1a; 2、修改应用图标&#xff1a…