jwt伪造身份组组组合拳艰难通关

news/2024/11/18 3:27:18/文章来源:https://www.cnblogs.com/hetianlab/p/18349958

前言

现在的攻防演练不再像以往那样一个漏洞直捣黄龙,而是需要各种组合拳才能信手拈来,但是有时候使尽浑身解数也不能称心如意。

前期信息收集

首先是拿到靶标的清单

image-20240713174727680

访问系统的界面,没有什么能利用的功能点

image-20240713175618935

首先进行目录扫描,扫描发现存在xxx.zip的文件放置在web目录上

一般zip文件大部分情况都是开发运维人员做系统维护时留下的备份文件,在系统上线后并没有将其删除,于是底裤(即源代码)都直接给到了攻击者

来到这一步都以为是一路高歌,轻松拿下,没想象到是跌宕起伏伏伏伏伏......

先使用wget下载zip文件,文件总共200+mb,很有概率是源代码的打包

image-20240713180248221

从文件内容可判断,该系统是使用的.net开发,可通过dnspy进行审计

image-20240713180925791

文件上传漏洞审计

拿到源码后的第一个思路是寻找文件上传漏洞

果不其然在源码中找到uploadimg接口,发现未对上传的文件格式进行过滤

image-20240713190953131

实际访问接口发现,怎么改变文件格式、文件内容、Content-Type、还是各种变种传输都无济于事。

【----帮助网安学习,以下所有学习资料免费领!加vx:dctintin,备注 “博客园” 获取!】

 ① 网安学习成长路径思维导图
 ② 60+网安经典常用工具包
 ③ 100+SRC漏洞分析报告
 ④ 150+网安攻防实战技术电子书
 ⑤ 最权威CISSP 认证考试指南+题库
 ⑥ 超1800页CTF实战技巧手册
 ⑦ 最新网安大厂面试题合集(含答案)
 ⑧ APP客户端安全检测指南(安卓+IOS)

返回包永远是{"Status":1,"Data""null}

运维实在是坏呀~

image-20240713192151353

Sql注入漏洞审计

第二个思路就是找注入

但是代码中定义了一个SqlChecker全局的类,强制处理所有用户传参,找注入这个方向有有点难啃了

image-20240713231705777

系统用户信息遍历

找到/api/user/getusers接口

image-20240714124940252

接口没有做鉴权,构造请求包发送,返回包返回系统所有用户信息

其中用户信息包括姓名、出生日期、微信账号、手机号码、邮箱、密码等等

image-20240714111059711

伪造jwt_token获取系统管理员-拿下靶标

源码获取到jwt_token的secret

image-20240714111521463

但是该secret不是可读性文本,估计是随机生成的byte字节序列,因此不能自行使用cyberchief或者其他工具将token直接生成

这里有个坑点:开始是使用gpt生成的脚本进行secret的读取和token的生成,发现gpt在处理字节上面有点问题,生成的jwt_token不能使用,于是自行编写了个py脚本进行jwt_token的构造,首先我们将字节序列做16进制的转化,为了python能够使用bytes.fromhex()函数读取16进制化的secret,然后根据上面读出的用户信息,伪装admin账号身份,并设置一个较长的ExpireTime

image-20240714112945210

拿到jwt_token之后,要如何使用才能拿到后台呢,这里首先要明白该系统的登录鉴权机制

由于他存在注册功能,我们便可在自行注册一个账号,然后进行登录,查看认证处理流程

从数据包里面得知,登录成功后会返回jwt_token和一些与用户相关的一些信息,前端会根据返回的身份信息,跳转到对应的页面,并且功能接口都会带上jwt_token进行请求以便获取系统数据

image-20240714113814520

了解清楚后,就开始进行身份伪造,首先去后台登录系统

image-20240714114400235

将登录返回包的内容替换为管理员账号的token(从python脚本中生成)和管理员用户的身份信息

image-20240714114752568

通过鉴权后,终于成功获取管理员后台,靶标5000分到手,哈哈

image-20240714121818513

总结

本次渗透从惊喜到怀疑到失落,总的来说就是“山穷水尽疑无路,柳暗花明又一村”。

如果只是死磕文件上传、SQL注入这些能够快速获取权限的洞,反而有时会错过一些有用的信息,毕竟比赛中分数才是最要紧的,如何高效快速拿下靶标才是第一要领。

同时,代码审计的过程中要结合系统功能来多方面评估,本次挖洞也是先认真理解了系统的登录认证机制,才知道有jwt鉴权这种方式,从而萌生在代码中找jwt secret的想法,也才能把快到手的分数牢牢抓在自己手中。

更多网安技能的在线实操练习,请点击这里>>

  

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

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

相关文章

Genomics | 转录组和代谢组分析揭示了铁皮石斛中黄酮类化合物的积累

铁皮石斛是一种在中国有着悠久使用历史的中草药。黄酮是铁皮石斛重要的次生代谢产物,但其在铁皮石斛中的分子调控机制尚不清楚。在这项研究中,作者收集了一年到四年生的铁皮石斛茎,用于rna测序和质谱数据收集。结果表明,代谢组学分析检测到124种不同的类黄酮代谢物,其中黄…

包机制

1.包机制2.正确建立包 先找到Tree Appearance中找到compact middle package,取消勾选。然后右键src 新建一个package 一般利用公司域名倒置作为包名 如:com.zhiShi.www3.导包 使用import可以指定包中的某个成员如果文件太多,可以选择* *是选择所有文件

获取窗口大小 极语言

程序段 窗体启动 整数 width,height; 矩形类 矩形; 取客户区(窗体, &矩形); width = 矩形.宽-矩形.左; height =矩形.高-矩形.顶; 文本 x[5]=width; 文本 y[5]=height; 信息框(0,x,"你好",信息图标); 信息框(0,y,"你好",信息图标); 结束看下图,注意我截…

WPF实现一个壁纸切换器

这是一个最初的版本,大概效果如下: 写这个工具的想法是方便切换两套壁纸,一套私密壁纸,一套日常壁纸。准备支持动态壁纸、Bing每日图、从WebApi接口随机获取一张图。 技术层面 来说,没有问题,只是缺少时间去实现。项目代码:https://github.com/zhaotianff/PrivateWallp…

BMC Genomics | 综合代谢组学和转录组学分析揭示了菊花黄酮和咖啡酰奎宁酸的生物合成机制

杭白菊是一种流行的药用和食用植物,主要通过黄酮类和咖啡酰奎宁酸(CQAs)的存在发挥其生物活性。然而,菊花头状花序中黄酮和CQA生物合成的调控机制尚不清楚。 本研究采用高效液相色谱法测定了菊花头状花序发育过程中黄酮类化合物和CQAs的含量,发现在S1和S2阶段含量较高,在S3…

Creo二次开发(一)

creo vs环境搭建 note:配置Debug,release会失败 1.安装creo要安装ptoolkit 2.vs配置 包含目录 库目录 预处理定义PRO_USE_VAR_ARGS 链接器 wsock32.lib psapi.lib netapi32.lib mpr.lib protk_dllmd_NU.lib ucore.lib udata.lib note:忽略特定默认库库中添加“msvcrt.lib(结合…

【Playwright+Python】系列教程(八)鉴权Authentication的使用

写在前面 还是有些絮叨的感觉,官方翻译和某些博主写那个玩楞,基本都是软件直接翻译后的产物。 读起来生硬不说,甚至有的时候不到是什么意思,真的是实在不敢恭维。 到底是什么意思? 就是你已经登陆过一次,在Session、Cookie未失效的情况下,登录过一次后,下次就不用再走一…

Charles使用教程

一、Charles教程(一)Charles使用教程Charles是一个HTTP代理/ HTTP监视器/反向代理,能够查看其机器和Internet之间的所有HTTP和SSL / HTTPS流量。这包括请求,响应和HTTP标头(包含cookie和缓存信息) Charles 是在 Mac /Windows下常用的网络封包截取工具,在做 移动开发时,…

maven引用库显示红色波浪线时尝试删除_remote.repositories有用

使用第三方框架平台开发,其仓库为私服,在私服仓库不可用时但jar又是已经存在的情况下,maven很多引用库一直显示红色红波浪。 最后通过将repository下所有包下的_remote.repositories文件删除,问题解决了。 即,使用本地的jar,不需要检查远程仓库上的包。

Odoo17.0基于企业微信的考勤应用

对于使用企业微信进行办公的企业而言,使用企业微信打卡功能进行考勤非常常见,而如果能够将企业微信的打卡记录同步到odoo将极大的方便公司进行考勤统计和薪酬核算,降低人事工作的琐碎度,提供企业内部运营效率。本文就将展示如何借助企业微信高级版模块实现企业微信考勤应用…

StringBuffer作为参数传递

package com.shujia.day11;public class stringBufferDemo1 {public static void main(String[] args) {String s1 = "hello";//StringBuffer作为参数传递StringBuffer sb1 = new StringBuffer("hello");StringBuffer sb2 = new StringBuffer("world&…

Linux-USB驱动笔记--设备控制器(UDC)驱动

1、前言 在Linux-USB驱动笔记(四)–USB整体框架中有説到设备侧的设备控制器(UDC),下面我们来具体看一下。 2、设备控制器(UDC) USB设备控制器(UDC)驱动指的是作为其他USB主机控制器的USB硬件设备上的底层控制器驱动。该硬件和驱动负责将一个USB设备依附于一个USB主机控制器上…