热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何对登录接口加密字段进行暴破?

一、导语随着时间的推移,安全也越来越被大家开始关注,随之而来的就有各种内容加密,本文简单对登录接口暴力破解时字段被加密,如何处理加密内容进行暴破来进行一个简单的分享。二、正文登

一、导语

随着时间的推移,安全也越来越被大家开始关注,随之而来的就有各种内容加密,本文简单对登录接口暴力破解时字段被加密,如何处理加密内容进行暴破来进行一个简单的分享。


二、正文

登录接口如下:

image.png

BP上代理,输入账号密码验证码点击登录,查看历史记录分析。

image.png

可以看到发送了一个获取验证码的请求,内容为base64的图片和对应的key

继续查看登录验证请求,进行分析

image.png

当图片对应的key和字符正确时请求将会接受进行查询。

但是验证码每次都是独立获取的,且响应中存在key值,我们只需调用刷新验证的请求,获取key值和正确字符进行替换,那么就可以保证每次请求的内容有效。

我们再输入用户名2进行抓包

验证码错误提示error

image.png

复制用户2的信息替换到之前用户1的请求中重放。验证码依旧使用用户1的。

image.png

验证同一验证码可多次重复使用。

存在验证码重用的问题,但是请求加密了不能直接进行爆破。所以我们需要分析前端加密代码逻辑。


1.根据关键字快速定位加密字段

打开浏览器调试模式,根据请求包的关键字在js脚本中进行搜索进帮助我们快速定位

定位到一个ajax请求

image.png

可以看到smsg的内容调用了rsa函数,加密内容为sMsgStr这个变量。

同时可以看到js文件夹下rsa.min.js文件,根据命名查看内容得知为rsa加密方法。


2.根据关键字快速定位加密规则

继续搜索关键字,追踪变量 sMsgStr,可以看到为各字段组合拼接内容。

image.png

那么逻辑就很清晰了,我们只需获取各字段进行拼接,之后调用rsa函数加密即可。


3.根据加密规则获取各字段值

方法一:通过数据包获取

直接在数据包中搜索关键字端即可。

方法二:通过调试获取设置断点

设置断点

image.png

刷新页面,

输入内容,点击登录image.png

进行断点调试

这里点击进入下一个断点查看值。

可以看到 authType 值为1

image.png

继续调试获取其他字段值

image.png至此我们获得了各字段值

分析拼接规则,还调用了getLengthStr函数,继续在js中依据关键字搜索。

var sMsgStr = authType + getLengthStr(username) + getLengthStr(password) + getLengthStr(responseType)
+ getLengthStr(clientId) + username + password + responseType + clientId;//拼接规则

得到该函数内容

image.png

最后我们只需要调用rsa函数对拼接内容加密即可。

通过请求包获取各字段值,编写验证脚本。


4.编写测试脚本验证



将用户名置空,测试加密内容是否正确

image.png

保存为html文件打开。

wKg0C2L2DViAPRS7AACGGn6ygSM709.png

复制加密内容到BP进行重放验证,根据提示可知,验证脚本正确。

image.png

再次修改用户名为test进行验证,根据提示可知,验证脚本正确。

image.png


5.编写脚本批量生成字典

编写脚本批量输出用户名或密码加密后内容



效果图:

image.png

输出内容,复制粘贴保存为字典,最后根据字典使用BP进行爆破操作。

image.png


三、总结

整体内容并不复杂,相对正常测试加入了一部分前端分析调试的内容,希望大家在安全测试过程中可以多抱着学习的态度,多点耐心和认真,早日成为安全专家。



推荐阅读
  • 加密、解密、揭秘
    谈PHP中信息加密技术同样是一道面试答错的问题,面试官问我非对称加密算法中有哪些经典的算法?当时我愣了一下,因为我把非对称加密与单项散列加 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
  • 本文分享了一位Android开发者多年来对于Android开发所需掌握的技能的笔记,包括架构师基础、高级UI开源框架、Android Framework开发、性能优化、音视频精编源码解析、Flutter学习进阶、微信小程序开发以及百大框架源码解读等方面的知识。文章强调了技术栈和布局的重要性,鼓励开发者做好学习规划和技术布局,以提升自己的竞争力和市场价值。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文介绍了sqlserver云存储和本地存储的区别,云存储是将数据存储在网络上,方便查看和调用;本地存储是将数据存储在电脑磁盘上,只能在存储的电脑上查看。同时提供了几种启动sqlserver的方法。此外,还介绍了如何导出数据库的步骤和工具。 ... [详细]
author-avatar
aRuis
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有