实战|记一次某系统的渗透测试
2022-12-8 12:41:55 Author: 白帽子左一(查看原文) 阅读量:27 收藏

扫码领资料

获网安教程

免费&进群

前几个月被授权进行某大型运营商的渗透,在过程中也是遇到了一些比较有意思的东西,特此记录一波

最开始是通过一个webpack+未授权访问的接口获取了另一个系统的权限,根据获取到的口令进行复用对其他资产进行登录尝试,发现了这样一个系统

登录进去之后是一个摄像头的管理平台,里面包含了各种各样的功能,但经过一番简单的尝试,一些常见的漏洞如文件上传、sql注入均不存在;这个时候我就又把这个后台所有功能翻了一遍,发现这个后台的备份还原功能可能存在问题

点击手动备份之后,需要输入登录密码和一个加密密码,加密密码是可以任意输入的;确认之后,就会返回给你一个压缩包,打开一看是这样的一个结构

看到这个properties文件还是有点激动,当时还以为这里面可能会有数据库密码之类的东西,数据库拿下了getshell的几率不就大大增加了吗(这个公网ip是开放了一个mysql服务的);于是怀着激动忐忑的心情点击解压,但输入了登录密码、加密密码都不对,这个时候我就有点懵逼了,敢情你这个加密密码就是个摆设?

怀着*了狗的心情,又去看了下这里的还原功能,发现就是备份的逆逻辑,在你上传一个压缩包之前同样需要输入加密密码;于是猜测这里的加密密码后端是做了一些处理的,单纯的使用加密密码无法解压备份文件

这个时候,首要任务是找到后端对这个加密密码的处理逻辑;首先我抓包看了下这里的包,发现这里的登录密码和加密密码传送到后端时是经过加密了的,于是我大胆猜测这里前端的加密可能和后端的一致;经过一天对前端 JS 的分析,总算是分析出了前端的加密逻辑,然而我还是低估了这个系统的开发人员,加密后的密码依然不能解压备份文件

PS:这个时候我真心觉得这系统是真TM安全啊

没办法了,和小伙伴吐槽了一通,他建议我去官网找下产品手册,也许手册里有写相关的内容呢;我只好抱着死马当做活马医的心态去官网翻了一遍,手册没找到,倒是找到了一个修复补丁包

里面不但有后台的部分代码(class文件),还贴心的告诉了你补丁包的具体使用方法,比如安装路径等等。

真就离大谱,这种东西为啥会直接放出来。

直接代码包解压,导入idea,开审!

首先要找到备份相关逻辑,直接全局搜索对应的路由关键字,找到了后端对加密密码的处理逻辑,用加密后的加密密码去解压备份文件,可惜的是备份文件中并没有我想要的信息,只有这个后台相关的一些数据库数据,没任何鸟用;没办法了,只有对这残缺的代码继续审了,幸运的是,很快就从这个系统引入的依赖发现了突破口

这里引入的 ant.jar 包版本是有漏洞的,在它对压缩包进行解压时,没有正确的对 ../ 进行处理,会导致目录穿越的发生;由于之前补丁包中告诉了我们正确的web路径,所以这里大概率是能getshell的

首先我们构造一个形如这样的压缩包

opt里面即是该系统的具体web路径+webshell文件,构造完之后还需要使用加密后的加密密码对该压缩包进行加密

PS:这一步其实坑挺多的,构造目录穿越压缩包的脚本很多,但基本没有提供压缩包加密功能;提供压缩包加密软件的又不能构造形如 ../ 的目录(当时脑子卡了,后面才想到用linux的命令应该可以构造),最后是使用了某国产数字压缩软件成功进行了构造(国产YYDS)

将构造好的压缩包通过备份还原功能上传,成功getshell

作者:zerotwo转载自:https://xz.aliyun.com/t/11526

声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。所有渗透都需获取授权

@
学习更多渗透技能!体验靶场实战练习

hack视频资料及工具

(部分展示)

往期推荐

【精选】SRC快速入门+上分小秘籍+实战指南

爬取免费代理,拥有自己的代理池

漏洞挖掘|密码找回中的套路

渗透测试岗位面试题(重点:渗透思路)

漏洞挖掘 | 通用型漏洞挖掘思路技巧

干货|列了几种均能过安全狗的方法!

一名大学生的黑客成长史到入狱的自述

攻防演练|红队手段之将蓝队逼到关站!

巧用FOFA挖到你的第一个漏洞

看到这里了,点个“赞”、“再看”吧

文章来源: http://mp.weixin.qq.com/s?__biz=MzI4NTcxMjQ1MA==&mid=2247591580&idx=1&sn=40bb0b332312177d9d7738360bb6ecd1&chksm=ebeb2fb1dc9ca6a77120fdaeebe7c6ee55815a8592adc7e872e5c022625019ae5c0383ca11db#rd
如有侵权请联系:admin#unsafe.sh