声明本文章所分享内容仅用于网络安全技术讨论，切勿用于违法途径，所有渗透都需获取授权，违者后果自行承担，与本号及作者无关，请谨记守法.此文章不允许未经授权转发至除 火线Zone 社区 以外的其它平台！！！0x1 前言一、浅谈这篇文章主要是给师傅们分享下前段时间我们公司做的渗透测试，这次是跟市里面的网信办一起做的。因为是第一次所以我们这次做的渗透测试价格不高，主要是为了后面连续几年的一个渗透测试服务项目。这次的渗透测试范围特别广，包含整个市里面的好多政企单位和学校，资产多，测试起来也就比较简单。下面简单给师傅们分享下一些渗透测试上面的漏洞复盘，给新手师傅们，特别是没有参加过渗透测试的师傅们给点经验。这里需要注明下，该项目中的漏洞目前已经全部修复了，另外提醒师傅们不要做未授权测试。所以下面的渗透测试漏洞案例中又部分截屏不全，我会备注，因为目前已经修复了。二、资产整理首先我会把公司发的跟这次渗透测试项目相关的文件和资产，还有一些些漏洞报告的模版之类的汇总在一个文件夹中，这样方便后面我自己进行一个漏洞报告编写，以及资产的收集整理，比如像web资产和APP、小程序漏洞都是可以分开整理我们在渗透测试项目之前，甲方那边都会给我们一些资产相关的表格，下面就是常见的excel表格资产，还有就是有些甲方可能目标资产不是那么多，且大多都是web资产，直接也有发txt文件的txt的类型像下面的如下：然后像渗透测试，还有就是授权书也是得有的，这里我们都是合法授权渗透测试的项目，跟那边都有授权合作的项目书，这里也希望师傅们能够合法进行渗透测试0x2漏洞一 短信轰炸一、纵向轰炸这里首先先带师傅们看看渗透测试常测试的点，比如像登陆口，一般都有手机号码登录，手机号码验证登录，需要我们接受短信验证码，然后进行登录操作。像渗透测试还有重测和src漏洞挖掘中，短信轰炸都是收的，企业src价格低点，且一般香短信轰炸，一般像很多企业都要求在比如每分钟15/30条以上就收。这里测试的手是一个人力资源管理局的一个微信小程序，这里直接输入我自己的手机号，然后使用bp抓包，拦截短信验证码发送的数据包：直接把数据包放到重放模块，下面直接go一下（第一次go）数据包可以看到数据包回显是正常的，且手机也是正常的接受到了短信验证码了但是第二次再次点击发送数据包，缺显示报错，意思是我们已经发送了一次，在短时间类不能再发送了这里我们就可以想下了，我们能不能进行一个验证码发送限制次数的绕过，这个要是能绕过，无限次数的发送验证码是会消耗这个单位的一个资源的然后我们就可以进行一个测试了，看看什么字符可以进行绕过验证码发送呢？经过测试发现，可以通过@、空格、+86、逗号等进行绕过，从而达到短信轰炸的漏洞危害：我们如果要把危害加大，达到一分钟短信轰炸达到几十条，那么我们就要利用bp的爆破了，我们手动添加多个绕过字符，然后进行爆破，尽量多的提高每分钟爆破短信验证码的发送次数，以此来提高这个漏洞的危害：然后师傅们就可以看自己的手机上面的短信验证码了，就可以看到一次性并发绕过了很多条短信验证码：二、横向轰炸然后这个人力资源局的小程序还存在横向爆破绕过漏洞，可以进行双手机号验证码同时进行发送，从而造成逻辑漏洞，下面师傅们可以参考下我具体的绕过技巧，在碰到这样的场景时候，直接去实操即可类似下面的，常用的就是下面几个：phone=13888888888,phone=13999999999 phone=13888888888&phone=13999999999 phone=13888888888,13999999999 phone=13888888888&13999999999下面我就直接重新回到刚才上面的抓包步骤，抓取发送短信验证码的数据包，然后去尝试使用上面的绕过方法，看看能不能进行绕过，双手机号验证码同时发送，这里我使用我的卡一和卡二来演示：我这里使用的就是下面这个思路：phone=13888888888&13999999999然后就可以看到自己手机短信验证码，收到了来自卡一和卡二一样的验证码，且时间也是一样的：然后我们这里就可以使用卡二的手机收到的验证码，只需要知道卡一的手机号就行了，那么就可以直接登陆卡一的账号那么我们后面深入利用就可以去改人力资源局相关站点去搜索电话号码，然后使用这个漏洞就可以越权登陆其他账号，特别是像权限比较高的admin之类的管理员账号三、短信轰炸总结下面是我之前总结的一些验证码爆破的一个思维导图，师傅们可以保存下，对于挖掘企业src和众测的时候，厂家收不收呢，其实可以看看相关的文档，一般都是定义每分钟15/30条以上就收0x3 漏洞 二 SessionKey三要素泄露一、未授权登陆下面这个漏洞就是给师傅们分享下，在渗透测试中比较容易发现，并且好打的一个漏洞点——SessionKey三要素泄露，这个漏洞在蛮多微信小程序中都存在，且利用的手法不难，看完我这篇文章，师傅们也可以去测试下这个漏洞需要使用到一个SessionKey三要素解密的工具，有直接下载使用的，也有burpsuit插件，反正原理都是一样的，加解密→替换数据包→未授权登陆1、首先介绍下使用到的SessionKey解密工具https://github.com/mrknow001/wx_sessionkey_decrypt/releases/tag/v0.1这个工具直接双击运行即可，类似下面的：还有一个就是使用burpsuit的自带插件https://github.com/mrknow001/BurpAppletPentester/releases/tag/v1.1直接就可以导入到bp插件中2、这个微信小程序是目标资产中的一个大学的小程序设备，大学那种预约访谈进出校园、校园招聘那种功能点，像这样的基本上都有那种手机号一键登陆的功能点，像这样的微信小程序手机号一键登陆，很大概率存在SessionKey三要素泄露漏洞，这样的漏洞我之前挖EDUSRC挖了好多，且有一本证书站也就是这个漏洞，但是没有那么明显3、点击手机号快捷登陆操作，直接使用bp抓包，可以看到数据包中出现了SessionKey三要素泄露：4、直接一键发送到AppletPentester 插件中5、直接一键解密即可6、在信息收集的时候，在一个接口中，发现这个微信小程序里面有很多的一些学校老师信息，比如手机号之类的，然后这里我就带师傅们利用这个SessionKey三要素泄露漏洞，直接未授权登陆管理员老师账号直接替换成管理员老师176的手机号，然后点击加密再进行登陆口抓起数据包，替换数据包，然后点击重发数据包即可就可以直接未授权登陆这个账号了二、弱口令+信息泄露然后，我这里直接把这个小程序的host拿到web页面去访问，因为我一般打小程序都有这个习惯，看看web端有没有系统，特别是那种登陆系统，弱口令的概率很大打开web端访问，直接跳转这个页面，特别经典的若依系统页面这里直接使用刚才的手机号+弱口令密码直接成功登陆了后台，里面泄露了整个学校的学校个人敏感信息0x4 JWT爆破攻击一、可爆破/未验证签名导致越权首先通过微信搜索小程序，找到对应目标资产中的小程序系统直接点击这个微信小程序，这个时候我们需要一直打开我们的bp抓取小程序的数据包（这个是一个测试小程序的一个好习惯，因为有些接口，包括敏感信息泄露，看历史的数据包很关键），然后看看数据包有没有什么提示，因为这里我的bp安装了HAE，一般重点关注带颜色的数据包这里我们可以看到bp的历史数据包，显示了多个JSON Web Token也就是大家常说的JWT值，像一般碰到这样的JWT值，我一般都会选择JWT爆破尝试haiy选择有无设置None加密，去进行做一个渗透测试这里先直接复制到https://jwt.io/ 去看看这个JWT里面的内容，然后去猜测这个paylod校验哪部分下面我来给师傅们讲解下这个payload代表什么，一些新手师傅可能没有了解过，包括后面进行数据包替换，也是要修改其中的payload值|字段名|值|说明||-|-|-||role|appUser|用户角色，表明用户属于应用层普通用户（非管理员）||exp|1747377338|令牌过期时间（Unix 时间戳）。通过转换可得具体时间：2025-11-14 11:15:38 UTC||userId|xxxxxxxxxxxxxxxxxx|用于标识用户身份||user_key|xxxxx-xxxx-xxxx-xxxx |用户密钥或关联密钥（可能用于访问控制或加密）。||username|1xxxxxxxxx79|手机号，一键微信登陆的|这里先使用自己修改的JWT脚本爆破工具，看看能不能爆破出密钥爆破发现其密钥为123456然后直接来到刚才JWT的网站，去利用该key构造JWT，可以直接进入后台，下面的勾需要勾上因为这里我经过测试，这个网站的JWT是对user_key进行校验，所以只要在规定时间内user_key不过期，那么我们就可以拿另外一个手机号进行测试，替换bp抓取登陆口的数据包，然后放包就可以直接登陆别的账号首先这里需要修改下时间戳，拿这个网站：https://tool.lu/timestamp/ 一般都是改成第二天的时间，不可以早于测试时间还有就是把username替换下，这里我做测试，替换我的卡二，也就是最后面说93的尾号，因为经过测试，普通用户的role 都是appuser，这里猜测管理员可能是admin然后直接在小程序登陆口，使用bp抓包，然后劫持数据包，进行替换token值，因为这里经过测试是校验的JWT值通过不断替换JWT值，然后不断测试放包，放包，最后面可以直接不需要使用账号密码，直接登陆改账号二、设置加密为None导致不验证签名从⽽达到越权上面那种情况只需要爆破密钥，或者一些系统框架默认使用一些密钥，没有经过修改，可以直接利用默认key的那种，这里给师傅们讲解下那种设置加密了——None加密，导致直接爆破不了，需要使用JWT工具自动生成None加密的四种不同算法，也可以理解成一种绕过思路这里需要使用的工具是jwt_tool，下载地址如下：https://github.com/ticarpi/jwt_tool这里我这个小程序是不存在这个漏洞，但是这里给没有学过这个漏洞的师傅们演示下python jwt_tool.py JWT值会直接显示JWT解密以后的内容显示出来下面使用这个工具来测试 None 算法漏洞使用下面的这个语法跑这个脚本，⾃动⽣成 4 种 None 算法的变体（⼤⼩写敏感测试），其实也就是使用这四个token去挨个尝试替换，然后发包，看看返回包是否有成功回显数据python jwt_tool.py JWT值 -X a burpsuit返回包总结：401 Unauthorized → 签名校验失败，可尝试算法混淆或密钥爆破 200 OK → 攻击成功（罕⻅，说明存在⾼危漏洞） {"error":"alg not allowed"} → 服务端禁⽤ None，可尝试算法改⽤其他攻击向量（如 PS256 → HS256）0x5 OAuth2.0漏洞这次我在测试过程中碰到了OAuth2.0漏洞，是一个企业的微信公众号和一个带宣传性的一个登陆管理网站存在的这个漏洞，直接存在二维码不需要二次确认扫描，目前已经被修复了，但是那种漏洞的站点很明显，截屏那个网站的logo打码也看的出来所以这里直接给师傅们分享下我之前写的一篇关于OAuth2.0漏洞的文章，在先知社区原创的文章：https://xz.aliyun.com/news/16153简单案例分享简单来讲就是在登录过程中，比如可以使用第三方应用授权登录，且扫描二维码登录不需要确认校验，直接扫码即可登录，那么就可以使用二维码钓鱼之类的危害，就是文章开头的描述的百度案例一样。这里进入后台，然后有一个使用微信绑定，扫描二维码的功能点击立即绑定，然后就会弹出来一个二维码，那么我们就可以拿这个二维码进行一个钓鱼欺骗，让别人扫描二维码，从而绑定别人的微信号就跟我上面的一个，搞一个钓鱼的二维码模板，然后往一些网安群里面一发，说什么小白免费领取网安教程，只需要扫描此二维码即可（肯定有人扫的）0x6 jeecg泄露漏洞一、jeecg框架简介JeecgBoot是一款基于AIGC、BPM和低代码引擎的AI低代码平台，旨在帮助企业快速实现低代码开发和构建个性化AI应用！前后端分离架构Ant Design&Vue3，SpringBoot，SpringCloud Alibaba，Mybatis-plus，Shiro。强大的代码生成器让前后端代码一键生成，无需写任何代码！ 引领AI低代码开发模式: AI生成->OnlineCoding-> 代码生成-> 手工MERGE， 帮助Java项目解决80%的重复工作，让开发更多关注业务，快速提高效率 节省成本，同时又不失灵活性！低代码能力：Online表单、Online报表、大屏/仪表盘设计、表单设计、流程设计、报表设计;AI能力：AI应用平台+知识库问答、AI模型管理、AI流程编排、AI聊天、AI建表等,支持各种AI大模型ChatGPT、DeepSeek、Ollama等.jeecg官网如下：https://www.jeecg.com/二、jeecg综合漏洞利用工具这里先给新手师傅们分享个还不错的jeecg漏洞利用工具，首先这个工具书GUI图形化工具，还有就是这个工具更新了很大jeecg的历史nday漏洞在里面，使用操作简单工具下载链接：https://github.com/MInggongK/jeecg-这里给师傅们演示下，直接把可能存在jeecg漏洞的url导入目标中，然后选择ALL模块，进行检测即可三、从小程序到web端接口泄露好了，这里废话不多说了，这里回归这次渗透测试项目中来，再次给师傅们分享下这个漏洞，因为有些刚接触网安的师傅还没有接触这个漏洞，所以这里给大家分享下，这次jeecg漏洞通过以前保留的一些jeecg测试手册，一些jeecg的接口和bp数据包，像这样的jeecg框架系统，都是可以直接拿来测试1、首先，这个系统漏洞还是小程序，直接搜索对应资产小程序名称，这个系统是该市里面的一个大学的缴费系统2、打开微信小程序，首先我会直接去打开bp抓包，然后这里随便点击里面的功能点，然后进行看里面的数据包然后去翻里面的历史数据包，师傅们可以看到下面的table关键字这个tableNane关键字让我感到兴趣，是因为开发人员在一些做接口命名的时候，不会随意取名称，他这个接口后面的tableNane=xxxx，这里我直接去拿table表名出线多的去尝试猜测下这里我尝试了几个，但是都没有出信息，还尝试了information_schema.tables表名，都没有什么数据回显然后我这里还尝试直接把表名置空，但是依然没有什么敏感数据回显3、这里直接把小程序数据包中的host域名和端口，直接放到web端去访问，然后再尝试别的测试4、这里使用findsomething插件，去跑下web页面泄露的接口，这里把收集到的接口放到一个1.txt的文件中5、这里师傅们要是没有思路，最简单的就是就可以直接把findsomething插件泄露的接口利用bp的POST和GET方法都跑一遍即可。但是这里我需要找找我保存的接口里面有没有泄露跟tableName相关的6、通过findsomething插件，得到了好几个tableName的接口，然后直接使用bp去访问，发现一个接口直接泄露了四百多个数据表格名称然后每个表里面都泄露了好几百个个人敏感信息，比如身份证、手机号、姓名之类的四、SQL注入漏洞这个小程序的一个接口还存在SQL注入漏洞，通过测试，直接可以注入出数据库名称，直接又一个SQL注入到手了SQL注入payload：updatexml(1,concat(0x7e,user(),0x7e),1)五、提权操作师傅们，其实测试到这里，这个系统小程序和web端都摸熟悉了，就是jeecg的系统框架，里面的很多接口都是jeecg开发默认的接口名称，但是前面的路径发生了一点变化，没有原班直接拿jeecg的接口使用，但是经过FUZZ测试出来了很多接口，这里给师傅们分享下，我先注册一个账号，然后提权到admin管理员账号的过程。首先我使用register注册接口，注册一个账号下面就是提权的一个操作了，需要再次FUZZ接口，因为打jeecg漏洞多的师傅们，都知道，jeecg有很多的接口，像什么注册、查信息，查user_id，查所以账号的token值，还有用户敏感信息等，但是现在很多系统都不会直接拿jeecg都路径接口部署了，多多少少会进行魔改这里首先需要查询管理员admin的账户ID然后查询自己刚才创建用户的ID值然后使用打提权使用的jeecg漏洞poc，如下：//roleld填写需要提权的角色id userldList填写自己的idPOST xxxxx/jeecg-boot/sys/user/addSysUserRole（jeecg接口，需要自己去尝试，不一定是我这个） HTTP/1.1 Host: Cookie: cna=Ov9SH4RxGiACAf////9C18zb User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:129.0) Gecko/20100101 Firefox/129.0 Accept: application/json, text/plain, */* Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate X-Access-Token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3MjUzNzMyNDMsInVzZXJuYW1lIjoiMTEwMTAyIn0.NXRckymfKdZvEFsDQZ9Jwvk_rU_gVny2Rx6A Tenant-Id: 0 Origin: Dnt: 1 Referer: Sec-Fetch-Dest: empty Sec-Fetch-Mode: cors Sec-Fetch-Site: same-origin Priority: u=0 Te: trailers Connection: close Content-Type: application/json Content-Length: 96 { "roleId":"xxxxxxxxxxx", "userIdList":[ "xxxxxxxxxxxxxxxx" ] }这样就成功创建了这个系统的admin管理员的账户了，后面的思考就是直接使用创建的账户密码，去尝试爆破登陆其他系统六、其他jeecg小技巧下面再给大家总结下jeecg的其他打法小技巧一、常见的接口敏感信息泄露：/v2/api-docs /swagger-ui.html /env //获取参数信息 /actuator /mappings /metrics /beans /configprops /actuator/metrics /actuator/mappings /actuator/beans /actuator/configprops /actuator/httptrace二、常见jeecg框架接口关键字：像看到下面的几个关键字，首先需要想到使用jeecg去打，因为很多现在直接把jeecg关键字给魔改了jeecg/ api/sys/ sys/user三、jeecg的几个常用弱口令：可以使用下面的弱口令去尝试爆破下登陆接口admin:123456 jeecg:1234560x7 总结然后还有很多其他的漏洞，这次文章就不一一给师傅们分享了，留着下次有时候给师傅们分享，这次写这篇文章由于之前的渗透测试项目漏洞都修复 了，我才写的这篇文章，所以实属不易，为了给师傅们演示的那么细致，特意去网上现找了一些漏洞实操截图给师傅们，因为之前的漏洞报告没有写的那么详细，这里怕新手师傅看不懂。这次渗透测试总共提交了四五十个漏洞报告，其中包括很多框架系统的默认弱口令，这个确实让我蛮意外的，还有一些网上的nday，这里面有些老系统也存在，因为测试的资产比较多，所以相对来讲出洞率较高。最后，希望看完这篇文章的你，也可以挖到心仪的漏洞！
最近参加了一下行业的演习行动，作为一个红队成员，简单做下总结。以目前现网的真实情况来看，企业的红蓝队在日常工作中已经将常见的漏洞与问题都排查掉了，所以在攻防中资产收集就成为了重中之重的任务。常见资产收集的方法：企查查、爱企查等搜索企业信息的网站，通过查询企业信息来找相关靶标系统的下属单位，通常情况下主企业的安全等级与防护能力比下属企业要强的多，通过下属企业或者三产、供应商等子公司来打进主企业的系统是一条道路。找到企业在企查查、爱企查上公开的域名信息后，我们就可以通过fofa、360quake、钟馗之眼、鹰图等测绘平台去查找相关的信息，也有很多自动化工具会调用相关平台的api，这个时候我们就需要一个会员的key了。比如Finger、Ehole等指纹探测的工具，ARL这种资产探测工具。收集到相关的资产之后就是常规的信息收集了，比如whatweb、whois信息、端口、子域名、目录等信息。工具有：nmap、goby、oneforall、dirsearch，这是我最常用的几个工具。常见信息收集完成之后就是对一些常见漏洞的测试了，比如一些框架性的漏洞，如shiro、各种OA、log4j2、spring相关漏洞等等。这些大部分是可以直接获取到权限的漏洞，除了那些可以直接获取到权限的漏洞，其他的小问题组合起来也是可以获得大分数的。逻辑漏洞是企业红蓝队会遗漏掉的问题之一，通过逻辑漏洞来爆破或者遍历用户名（很多系统的登录用户名都是采用的手机号），拿到手机号的情况下就可以简单利用一下社工库了（成功率不高）。图片验证码与手机短信验证码的绕过还是需要注意一点的，也是有部分系统会有这种情况。逻辑漏洞不只是登录系统之后才存在，登录页面也是会存在的。另外需要注意的是，登录模块可能做的很好，但是注册模块，找回密码模块可能就没有那么好的逻辑了。这次行动给我的一个最直观的感受是千万不要眼高手低，小问题组合起来可以利用的面将会扩大到给你一个惊喜的地步。敏感信息的泄露也是重点关注之一，JS文件中的敏感路径等需重点关注。还有最需要关注的敏感信息之一就是各大云平台的key，比如阿里云平台上的accessKeyId、accessKeySecret等信息，程序员为了自己工作方便，经常会将代码里的关键信息放到Github、gitee、CSDN等平台上，利用好这些，也是一大攻击路径。当然，这些代码平台上泄露的不只是key，有时候还会有云服务器的ip地址与账号口令。说完攻击路径，再来聊聊这种行动下个人认为的重点都有哪些。首先最关键的就是资产的收集，渗透测试的本质就是信息收集，资产与信息收集的越多，你的攻击路径就越多，思路就越广，前文已经提到个人常用的资产与信息收集的方法了，希望看到这里的大佬们能够交流一下各位的心得。其次是在这种演习行动中，代理真的很重要！！！众所周知，在这种时候，蓝队封禁ip是非常之快的，我们自己手里不拿着几十上百的ip做代理，被封禁之后你只能看着干瞪眼。所以我将代理放在重点的第二位。第三位是什么呢，个人认为是反蜜罐的插件或者工具，蜜罐不只是会收集你攻击的ip与你攻击的payload，有一些是会直接收集你浏览器中保存的账号口令的，通过这些账号，比如百度账号、新浪账号、知乎账号等等，再去社工库里面搜索到你手机号相关联的信息，比如姓名、家庭地址、QQ号、微博等信息，微信与支付宝的实名认证的调用，找到攻击者不是很大的难题！所以反蜜罐插件真的很有用。此次的演习行动主办方要求不允许使用钓鱼、社工、物理及近源渗透的方法，这些东西就不多说了。对于企业来讲，员工的安全意识是最薄弱的一环，这种情况下只能去反复的做一些安全意识的讲课，来提高大家的警觉性。写在最后的一些话，通过这次演习行动，除了技术之外也有了一些新的认知。有一句古话说的好：“胸有惊雷而面如平湖者，可拜上将军。”我个人对于这句话的认识为是这样的：有了成绩不要去惊喜，没有成绩不要气馁，一步一步慢慢来，总有一天我们回首前路，发现已经走出了很远！比赛也好，生活也罢，一定要耐心，细心，认真对待每一件事情。作为一个安全从业者，一定要有自己的底线。最后一句送给自己也送给各位表哥，坚守底线，坚持学习！