组组组合拳艰难渗透

admin 2024年8月7日18:36:17评论20 views字数 1460阅读4分52秒阅读模式

前言

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

前期信息收集

首先是拿到靶标的清单

组组组合拳艰难渗透

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

组组组合拳艰难渗透

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

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

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

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

组组组合拳艰难渗透

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

组组组合拳艰难渗透

文件上传漏洞审计

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

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

组组组合拳艰难渗透

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

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

运维实在是坏呀~

组组组合拳艰难渗透

Sql注入漏洞审计

第二个思路就是找注入

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

组组组合拳艰难渗透

系统用户信息遍历

找到/api/user/getusers接口

组组组合拳艰难渗透

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

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

组组组合拳艰难渗透

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

源码获取到jwt_token的secret

组组组合拳艰难渗透

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

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

组组组合拳艰难渗透

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

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

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

组组组合拳艰难渗透

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

组组组合拳艰难渗透

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

组组组合拳艰难渗透

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

组组组合拳艰难渗透

总结

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

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

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

原文始发于微信公众号(蚁景网安):组组组合拳艰难渗透

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年8月7日18:36:17
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   组组组合拳艰难渗透https://cn-sec.com/archives/3043992.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息