【信息收集】从GET到POST:破解登录表单的全流程

=目标:

  1. 将浏览器数据代理至BP的proxy模块。

  2. 将个人PHP的留言板项目首页登录数据包代理至BP,并转发至intrder模块,进行暴力破解。

免责声明:本文章内容仅用于个人网络安全知识学习与研究,严禁用于任何未经授权的攻击或非法活动,使用者需遵守相关法律法规,一切违法违规行为后果自负!


抓包:

由于自己的项目后端没有写加密,抓包后直接发现问题:明文传输

查看事件日志,大抵这也算是信息收集的一部分~

并且注意到,刚访问页面时抓包是get请求,提交数据后抓到的包才是后端代码中写的post请求

这种现象是由HTTP 请求的分工和网页交互流程决定的,本质上是 “页面加载” 与 “表单提交” 两种行为对应不同请求方法的结果,具体原因如下:

1. 刚进入页面时的 GET 请求:负责 “获取资源”

当你在浏览器中输入网址或点击链接进入登录页面时,浏览器会发送GET 请求,这是因为:

  • GET 请求的核心作用:从服务器获取资源(如 HTML 页面、CSS、JS、图片等)。
    登录页面本身是一个网页(由 HTML、CSS、JS 等文件组成),浏览器需要通过 GET 请求向服务器 “索要” 这些资源,服务器收到 GET 请求后,会返回登录页面的 HTML 代码,浏览器再解析代码并渲染出登录界面(输入框、登录按钮等)。

  • 为什么用 GET?
    GET 是 HTTP 协议中默认的 “获取资源” 方法,它的语义是 “从服务器读取数据”,不会对服务器数据进行修改,适合用于请求静态资源(页面、图片等)或查询数据。

2. 点击登录按钮后的 POST 请求:负责 “提交数据”

当你填写账号密码并点击 “登录” 按钮时,触发的是表单提交行为,此时后端设计为 POST 请求,原因是:

  • POST 请求的核心作用:向服务器提交数据(如表单内容),并可能导致服务器数据被修改(如验证账号密码、创建会话等)。
    登录功能需要将用户输入的账号、密码发送给服务器验证,这属于 “向服务器提交数据” 的行为,符合 POST 请求的语义(POST 更适合处理有副作用的操作,如提交、修改数据)。

  • 为什么登录用 POST 而非 GET?

    • GET 请求的参数会暴露在 URL 中(如?username=xxx&password=xxx),安全性低,不适合传输敏感信息(密码)。

    • POST 请求的参数放在请求体中,相对更安全,且支持更大的数据量,适合传输表单数据。

3. 背后的技术逻辑:网页交互的 “两步走”

登录页面的交互流程本质是 “先加载页面,再提交数据” 的两步操作:

  1. 第一步:加载登录页面(GET)
    浏览器发送 GET 请求 → 服务器返回登录页面的 HTML(包含表单标签<form>) → 浏览器渲染出带输入框和按钮的界面。
    此时的<form>标签可能已经定义了提交方式为 POST(如<form method="post" action="/login">),但未点击按钮时,这个表单不会被提交。

  2. 第二步:提交登录数据(POST)
    点击 “登录” 按钮 → 触发表单提交事件 → 浏览器根据<form>标签中method="post"的定义,向action指定的地址发送 POST 请求 → 请求体中携带账号、密码等数据 → 服务器验证并返回结果。

总结 :

  • GET 请求:用于 “获取登录页面资源”,是进入页面时的默认行为,目的是让浏览器渲染出可交互的界面。

  • POST 请求:用于 “提交登录数据”,是点击按钮后的主动操作,目的是将敏感信息发送给服务器验证。

这两种请求分别对应 “页面加载” 和 “数据提交” 两个阶段,分工明确,符合 HTTP 协议中 GET(读取)和 POST(提交)的设计语义。


暴力破解:

将抓到的包转发至intrder模块,进行暴力破解。

开始攻击,通过寻找到“字段长度”明显不同的字段,确定正确密码


E                 N                 D

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

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

相关文章

【办公自动化】如何使用Python操作PPT和自动化生成PPT?

在现代商业和教育环境中&#xff0c;PowerPoint演示文稿是信息传递的重要工具。通过Python自动化PPT创建和编辑过程&#xff0c;可以大幅提高工作效率&#xff0c;特别是在需要批量生成或更新演示文稿的场景下。本文将介绍如何使用python-pptx库实现PPT自动化&#xff0c;并提供…

18 ABP Framework 模块管理

ABP Framework 模块管理 概述 该页面详细介绍了在 ABP Framework 解决方案中使用 ABP CLI 及相关工具添加、更新和管理模块的方法。模块管理是 ABP 模块化架构的核心&#xff0c;支持可重用业务和基础设施功能的集成。模块通常以 NuGet 和/或 NPM 包的形式分发&#xff0c;有时…

外观模式C++

外观模式&#xff08;Facade Pattern&#xff09;是一种结构型设计模式&#xff0c;它为复杂系统提供一个简化的接口&#xff0c;隐藏系统内部的复杂性&#xff0c;使客户端能够更轻松地使用系统。这种模式通过创建一个外观类&#xff0c;封装系统内部的交互逻辑&#xff0c;客…

Go 微服务限流与熔断最佳实践:滑动窗口、令牌桶与自适应阈值

&#x1f31f; Hello&#xff0c;我是蒋星熠Jaxonic&#xff01; &#x1f308; 在浩瀚无垠的技术宇宙中&#xff0c;我是一名执着的星际旅人&#xff0c;用代码绘制探索的轨迹。 &#x1f680; 每一个算法都是我点燃的推进器&#xff0c;每一行代码都是我航行的星图。 &#x…

Java面试宝典:JVM性能优化

一、运行时优化 Java虚拟机(JVM)的运行时优化是提升Java应用性能的核心环节。JIT(Just-In-Time)编译器在程序运行过程中,通过分析热点代码的执行模式,动态地进行一系列高级优化。这些优化技术对开发者透明,但了解其原理能帮助我们编写出更易于优化的代码,从而显著提升…

Day55--图论--107. 寻找存在的路径(卡码网)

Day55–图论–107. 寻找存在的路径&#xff08;卡码网&#xff09; 今天学习并查集。先过一遍并查集理论基础。再做下面这一道模板题&#xff0c;就可以结束了。体量不多&#xff0c;但是理解并查集&#xff0c;并使用好&#xff0c;不容易。 后续再找相关的题目来做&#xff0…

C++中的链式操作原理与应用(三):专注于异步操作延的C++开源库 continuable

目录 1.简介 2.安装与集成 3.快速入门 4.完整示例 5.优势与适用场景 1.简介 continuable 是一个专注于 异步操作延续&#xff08;continuation&#xff09; 的现代 C 开源库&#xff0c;旨在简化异步编程流程&#xff0c;解决 “回调地狱” 问题&#xff0c;提供直观、灵活…

STM32--寄存器与标准库函数--通用定时器--输出比较(PWM生成)

目录 前言 通用定时器类型 向上计数、向下计数、中心对齐 输入捕获与输出比较概念 输出比较典型例子&#xff1a;驱动舵机旋转 通用定时器的输出比较库函数 代码 通用定时器的输出比较寄存器操作 代码 这里提供数据手册的寄存器 后言 前言 使用平台:STM32F407ZET6 使…

91、23种设计模式

设计模式是软件设计中反复出现的解决方案的模板&#xff0c;用于解决特定问题并提高代码的可维护性、可扩展性和可复用性。23种经典设计模式可分为创建型、结构型和行为型三大类&#xff0c;以下是具体分类及模式概述&#xff1a; 一、创建型模式&#xff08;5种&#xff09; 关…

力扣(串联所有单词的子串)

串联所有单词的子串问题&#xff1a;多滑动窗口与哈希表的实战应用。 一、题目分析&#xff08;一&#xff09;问题定义 给定字符串 s 和字符串数组 words&#xff08;words 中所有单词长度相同 &#xff09;&#xff0c;找出 s 中所有“串联子串”的起始索引。串联子串指包含 …

RH134 管理基本存储知识点

1. 对 Linux 磁盘进行分区时有哪两种方案&#xff1f;分别加以详细说明。答&#xff1a;MBR分区&#xff1a;主引导记录(MBR)分区方案是运行BIOS固件的系统上的标准方案。此方案支持最 多四个主分区。在Linux系统上&#xff0c;您可以使用扩展分区和逻辑分区来创建最多…

【JS 异步】告别回调地狱:Async/Await 和 Promise 的优雅实践与错误处理

【JS 异步】告别回调地狱&#xff1a;Async/Await 和 Promise 的优雅实践与错误处理 所属专栏&#xff1a; 《前端小技巧集合&#xff1a;让你的代码更优雅高效 上一篇&#xff1a; 【JS 数组】数组操作的“瑞士军刀”&#xff1a;精通 Array.reduce() 的骚操作 作者&#xff…

23.Linux : ftp服务及配置详解

Linux &#xff1a; ftp服务及配置详解 FTP 基本概念 定义&#xff1a;文件传输协议&#xff08;File Transfer Protocol&#xff09;&#xff0c;采用 C/S 模式工作。端口&#xff1a; 控制端口&#xff1a;21数据端口&#xff1a;20FTP 工作原理模式工作流程连接发起方主动模…

悲观锁乐观锁与事务注解在项目实战中的应用场景及详细解析

在今天做的项目练习部分中真的学到了很多东西&#xff0c;也补充了许多之前遗漏或是忘记的知识点&#xff0c;但时间精力有限&#xff0c;我就先记录一下今天用到的一个新东西&#xff0c;悲观锁和乐观锁。首先给出实际应用背景&#xff1a;在加入锁和事务注解之前&#xff0c;…

Java构造器与工厂模式(静态工程方法)详解

1. 构造器1.1 构造器的核心意义1.1.1 对象初始化构造器在创建对象 (new) 时自动调用, 用于初始化对象的状态 (如设置字段初始值, 分配资源等)无构造器时: 字段为默认值&#xff08;0/null/false&#xff09;有构造器&#xff1a;确保对象创建后即处于有效状态1.1.2 强制初始化…

解决jdk初始化运行,防火墙通信选错专业网络问题

问题描述新项目添加不同版本的jdk&#xff0c;运行时提示防火墙通信策略&#xff0c;选成专用网络。其他人访问后端接口时&#xff0c;提示连接失败。 解决方案&#xff1a;1、在搜索栏中输入 防火墙关键字&#xff0c;选择到防火墙和网络保护2、选择允许应用通过防火墙3、先点…

【Linux】常用命令(三)

【Linux】常用命令&#xff08;三&#xff09;1. export1.1 原理1.2 常用语法1.3 示例1.4 书中对命令的解释1.5 生效范围2. 测试服务地址与其端口能否访问2.1 nc(Netcat)命令2.2 telnet2.3 nmap2.4 curl命令 (适用于HTTP/HTTPS 服务)1. export export 是 Linux Shell&#xff…

Pytest项目_day15(yaml)

YAMLYAML是一个对所有编程语言都很友好的数据序列化标准&#xff0c;它是一种直观的能够被电脑识别的数据序列化格式&#xff0c;是一种可读性高且容易被人类阅读的脚本语言YAML语言的本质是一种通用的数据串行化格式适用场景 可以直接序列化为数组、字典解析成本低专门写配置文…

审批流程系统设计与实现:状态驱动、灵活扩展的企业级解决方案

审批流程系统设计与实现&#xff1a;状态驱动、灵活扩展的企业级解决方案 本文基于实际企业级审批系统源码&#xff0c;深入解析如何设计高扩展性、强一致性的审批流程引擎&#xff0c;涵盖状态机设计、多租户隔离、文件服务集成等核心实现。 1. 系统设计概览 审批系统的核心架…

汽车免拆诊断案例 | 2010款奥迪A4L车行驶中发动机偶尔自动熄火

故障现象 一辆2010款奥迪A4L车&#xff0c;搭载CDZ发动机 &#xff0c;累计行驶里程约为18.2万km。该车行驶中发动机偶尔自动熄火&#xff0c;有时熄火后能够立即重新起动着机&#xff0c;有时需要等待一会儿才能重新起动着机&#xff0c;故障频率较低。因该故障在其他维修厂陆…