【渗透测试】web端姿势-前端利用

news2024/12/27 16:19:46

目录

前端

存在问题

关于密码重置

jwt攻击

jwt介绍

工具使用

学习来源


前端

存在问题

任意用户注册

未授权访问,直接访问对应链接,可得到系统权限
可爆破用户名
爆破用户名,密码
用户名注入
万能密码
用户名Xss
修改返回包信息,登入他人账户
修改cookie中的参数,如user,adminid等
后台登录参数修改为注册参数/reg、/register、/sign等

发送验证码后回显到返回数据包中
登录失败返回包修改,例如“false”改为“true”,响应数值“0”改为“1”,登录后台。如果存在这些情况,一般前端Js、Html也可以直接找到后端对应的各类未授权访问接口
Js、Html存在用户名密码等注释信息
根据系统查找系统对应的默认账号密码登录
有些系统的密码为空,密码不填或者抓包后置空发送
存在信息泄露手机号、邮箱、人名等可以到社工库查找对应的密码
页面无注册功能,通过Js或Html找到隐藏注册接口注册登录
注册时验证码没有做好绑定,删除验证码参数,或者验证码参数为空可以注册
验证码没有做好绑定,发送了验证码但是后端接收到任意验证码都可以注册、爆破、重置密码等

社工字典密码生成 GitHub - zgjx6/SocialEngineeringDictionaryGenerator: 社会工程学密码生成器,是一个利用个人信息生成密码的工具(html端)

GitHub - Mebus/cupp: Common User Passwords Profiler (CUPP)(Linux工具)

关于密码重置

验证码不失效:爆破验证码

重置一个账户,不发送验证码,设置验证码为空发送请求。

发送验证码,查看相应包,在包中看到验证码
验证码生存期的爆破
修改相应包为成功的相应包进行发送
跳过验证步骤:先正常修改密码走一遍,记录通过验证码后输入密码的页面信息,如url,再重新输入用户名,在验证码页面输入url跳转到修改密码页面进行修改。
验证码未绑定用户:两个账户,重置别人密码时,替换验证码为自己正确的验证码
重置别人密码时,抓包把手机号替换为自己的手机号或者邮箱地址
重置自己的成功时,同意浏览器重置别人的,不发验证码
替换用户名,ID,cookie,token参数等验证身份的参数
通过越权修改他人的找回信息如手机/邮箱来重置 

参数隐藏:输入用户名时抓包,复制用户参数,输入正确密保跳转到修改密码页面,输入密码进行修改拦截数据包发现用户参数不可见,在密码前面添加用户参数,并把参数值修改为他人参数值,即可修改他人密码。

参考自:(3条消息) 逻辑漏洞 - 密码重置_J0hnson666的博客-CSDN博客_密码重置漏洞

jwt攻击

jwt介绍

JSON Web Token(JWT)是一个开放标准(RFC 7519),用于在双方之间安全地表示声明。
JWT是一种无状态的认证机制,通常用于授权和信息交换。JWT只通过算法实现对Token合法性的验证,不依赖数据库,Memcached的等存储系统,因此可以做到跨服务器验证,只要密钥和算法相同,不同服务器程序生成的Token可以互相验证,一旦我们掌握了token的构造,便可模仿任何已知用户进行操作

jwt结构:头部(header),有效载荷(payload),签名(signature)。通常的形式为:xxxxx.yyyyy.zzzzz。

头部:头部用于描述关于该JWT的最基本的信息,通常由两部分组成:令牌的类型(即JWT)和所使用的签名算法。例如:{ "alg": "HS256", "typ": "JWT" }。Alg代表加密方式,修改用户名等身份认证的地方,把HS256设置为none生成token发送请求,使用python的pyjwt模块

有效载荷:令牌的第二部分是载荷,放置了 token 的一些基本信息,以帮助接受它的服务器来理解这个 token。同时还可以包含一些自定义的信息,用户信息交换。例如:{ "sub": "1234567890", "name": "John Doe", "admin": true }

签名:要创建签名部分,您必须获取编码的头部,编码的有效载荷,密钥,头部中指定的算法,并对其进行签名。
例如,如果要使用HMAC SHA256算法,则将通过以下方式创建签名:

HMACSHA256(base64UrlEncode(header) + "." +base64UrlEncode(payload),secret)

签名用于验证消息在整个过程中没有更改,并且对于使用私钥进行签名的令牌,它还可以验证JWT的发送者是它所说的真实身份。

JSON Web Tokens - jwt.io

 

对于未签名jwt:将原JWT串解码后修改用户名等身份认证的地方,生成新token发送请求

工具使用

jwt_tools:

GitHub - ticarpi/jwt_tool: A toolkit for testing, tweaking and cracking JSON Web Tokens

下载、配置:

$ git clone https://github.com/ticarpi/jwt_tool
$ python3 -m pip install termcolor cprint pycryptodomex requests
$ cd jwt_tool
$ python3 jwt_tool.py -h
$ python3 jwt_tool.py eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwicm9sZSI6InVzZXIiLCJpYXQiOjE1MTYyMzkwMjJ9.1rtMXfvHSjWuH6vXBCaLLJiBghzVrLJpAQ6Dl5qD4YI -d /usr/share/wordlists/dirb/common.txt -C

对应的靶场webgoat里面有漏洞练习,可以进行测试。

学习来源

Web登录认证类漏洞总结 | 技术精选0137 (qq.com)

JWT攻击手册 - Bypass - 博客园 (cnblogs.com)

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

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

相关文章

(三)计算机组成原理——总线

文章目录(三)计算机组成原理——总线总线的基本概念单总线双总线面向CPU以存储器为中心总线的分类片内总线系统总线数据总线地址总线控制总线通信总线总线特性及性能指标总线特性机械特性电气特性功能特性时间特性性能指标总线标准总线结构单总线多总线双…

3.1 python高阶应用

文章目录闭包装饰器设计模式单例模式工厂模式多线程进程、线程和并行执行多线程编程网络编程服务端开发客户端开发正则表达式基础匹配元字符匹配递归闭包 def account_create(inital_account 0) :def atm(num:int,deposite:bool True) :# 声明inital_account是外部声明的init…

【Ajax】服务器的基本概念

一、客户端与服务器上网的目的通过互联网的形式来获取和消费资源。2. 服务器上网过程中,负责存放和对外提供资源的电脑,叫做服务器。3. 客户端上网过程中,负责获取和消费资源的电脑,叫做客户端。二、URL地址URL地址的概念URL&…

工业互联网2022:第一梯队成型、专精玩家突围

文|智能相对论作者|沈浪回顾2022年,市场依旧对工业互联网领域保持着高度的热情与专注。近期,IDC、Gartner等各大国际研究机构接连发布多份工业互联网相关报告,包括《2022年度中国工业互联网平台企业侧市场分析报告》《2022年度工业互联网平台…

唯一杰出级!百度智能云曦灵获信通院权威认证

​中国信通院公布“数字人系统评测结果” 百度智能云曦灵平台 继首批通过48项基础能力评测后 在第二轮性能分级评测中 以超高分获得行业唯一“杰出级”证书 代表了当前数字人的最高标准 该评测标准依托国际电信联盟(ITU)、中国通信标准化协会&#xff08…

JNPF低代码开发平台 全新版本 使用讨论 多用户商城系统源码 框架源码部署文档

JNPF快速开发平台是一套成熟的快速开发框架, JNPF作为承重墙,强大支撑保障,提供所有操作系统的生长土壤,JNPF快速开发平台采用前后端分离技术、采用B/S架构开发,形成一站式开发多端(APPPC)使用&…

【手写 Vue2.x 源码】第二十九篇 - diff算法-节点比对

一,前言 上篇,diff 算法问题分析与 patch 方法改造,主要涉及以下几点: 初始化与更新流程分析;问题分析与优化思路;新老虚拟节点比对模拟;patch 方法改造; 下篇,diff 算…

Mysql的锁问题:

Mysql的锁问题: 1.1锁的概述: ​ Mysql锁的机制比较简单,不同的存储引擎支持不同的锁机制:MyISAM和MEMORY存储引擎支持表级锁;DBD支持页面锁,但是它也支持表级锁;InnoDB既支持行级锁也支持表级…

23-1-18 文件上传

步骤 file01 / file02 分别是两台java服务 功能: 主要负责接收用户上传的文件存储在指定目录 并记录(上传时间、上传人、文件信息(大小,源文件名,存储后的文件名 ....) 文件权限(共享、私有))。负责接收处理用户的下载请求,用户可以根据文件…

【开发Log】C++QT连连看

1.10开发的初衷是闲来无事开了把宠物连连看,然后发现打了几遍第一关都过不去,于是想自己写个,这样就可以任意使用提示次数了(bushi。其实今天正好是老妈生日,问了下老妈她竟然还玩连连看,还ak了orz。于是乎…

分布式理论

目录 1.定义 2.关键技术 3.关键问题 4.基本定理 4.1.CAP定理 4.2.BASE定理 1.定义 分布式的本质是一系列计算机集群通过网络共同完成一串连贯的任务。 2.关键技术 分布式主要关注的几个关键点技术是: 性能容错通信 性能: 可扩展性&#xff0c…

深度学习入门基础CNN系列——池化(Pooling)和Sigmoid、ReLU激活函数

想要入门深度学习的小伙伴们,可以了解下本博主的其它基础内容: 🏠我的个人主页 🚀深度学习入门基础CNN系列——卷积计算 🌟深度学习入门基础CNN系列——填充(padding)与步幅(stride&…

Acwing - 算法基础课 - 笔记(数学知识 · 三)(补)

数学知识(三) 这一小节讲的是高斯消元,组合数。 高斯消元 高斯消元是用来解方程的,通常来说可以在 O(n3)O(n^3)O(n3) 的时间复杂度内,求出包含 n 个未知数的,n个方程的多元线性方程组的解。如下的方程组…

人机界面石油行业应用:一个设备构建石油罐区状态监测系统

一、应用背景 石油罐区是石油石化企业重要的生产设施,负责存储和输送各类油品,而石油罐区状态参数的监控是生产管理的重要部分,不仅可以及时准确地获取现场设备数据,保证罐区的正常运行,还可以防止安全事故的发生。 …

Python如何解决“快手滑块验证码”(4)

前言 本文是该专栏的第32篇,后面会持续分享python的干货知识,记得关注。 很多时候,我们打开一个页面还没开始进行浏览,就跳出一个滑块验证的图片,需要拖到滑块至缺口处,才可以正常浏览。这对于我们正常人浏览页面来说,几乎没什么难度,但是当我们需要用到脚本去实现的时…

本地服务器如何让外网远程桌面连接?

远程访问是远程办公和服务器管理常用的网络应用场景。那么,当我们需要面对远程目标主机是内网服务器电脑时,在不是同个局域网的跨网环境下,内网可以远程控制电脑吗?答案是可以,使用快解析内网映射方案就能实现将本地服…

MyBatis一级缓存 二级缓存

MyBatis一级缓存 二级缓存什么是缓存?一级缓存一级缓存失效的四种情况二级缓存怎样开启二级缓存使二级缓存失效的情况二级缓存相关配置缓存查询的数据顺序整合第三方缓存EHCache(代替二级缓存)什么是缓存? 这是一个地图软件上的根据城市查询模块,对于那…

Freemarker页面静态化开发

4.5 页面静态化 4.5.1 什么是页面静态化 根据课程发布的操作流程,执行课程发布后要将课程详情信息页面静态化,生成html页面上传至文件系统。 什么是页面静态化? 课程预览功能通过模板引擎技术在页面模板中填充数据,生成html页…

Mybatis Plus轻松上手

Mybatis Plus 今日目标: 了解mybatisplus的特点能够掌握mybatisplus快速入门能够掌握mybatisplus常用注解能够掌握mybatisplus常用的增删改查能够掌握mybatisplus自动代码生成 Mybatis: ✔需要程序员编写sql语句程序员可以干预sql对sql进行调优(优化) MybatisPlu…

强化学习笔记:基于价值的学习方法之价值估计(python实现)

目录 1. 前言 2. 数学原理 3. 代码实现 3.1 游戏设定 3.2 class State 3.3 class Action 3.4 Class Agent 3.5 Class Environment 4. 仿真结果及其分析 4.1 play() 4.2 value_evaluation_all_states(grid, max_steps) 4.3 value_evaluation_one_state(grid, s) 4.4…