010-实战Java篇-颇为简单的一次审计getshell

admin 2024年2月15日23:59:04评论29 views字数 1598阅读5分19秒阅读模式

010-实战Java篇-颇为简单的一次审计getshell

文章前言

年少而不可得之人,终会困我一生

本文记录的是:在一次授权渗透测试中从信息收集、源码审计到利用SQL注入、XXE、文件上传最终getshell的过程;加油骚年,没有什么不可得的人或物,牢笼是困不住你的!

故事背景

阿SIR,help,有人在搞传销诈骗

大半夜接到任务要透站

作为一个安服仔,没办法,起床,日站

不能整天想妹妹哈哈哈哈~~!

信息收集

又是喜闻乐见的信息收集环节,后台是一个登录框,有小程序和商城,目标服务器部署在某讯云,查IP在境外

010-实战Java篇-颇为简单的一次审计getshell

习惯性翻找JS来搜集信息,使用的是国内某个商城系统,xxx admin Java版本

010-实战Java篇-颇为简单的一次审计getshell

既然找到源码厂商是哪家了,就好办了

准备历史漏洞查询打一波,结果发现这个版本没有公开漏洞

那就只能自己来了,自己动手丰衣足食

审计实战

1、SQL注入漏洞【三枚】:

入口点controllerXXXXController.java

010-实战Java篇-颇为简单的一次审计getshell

接受POST传参,我们跟进systemStoreService.getNearList,看看具体参数传进去之后怎么去处理的

来到getNearList方法:

010-实战Java篇-颇为简单的一次审计getshell

传参获取两个值request.getLatitude及request.getLongitude,并检测字符串是否为空,满足这两个传参不为空,接着走dao.getNearList

010-实战Java篇-颇为简单的一次审计getshell

轻松拿捏,利用${}拼接造成注入,看来开发很给面子,反手送我一个注入,笑嘎嘎!

010-实战Java篇-颇为简单的一次审计getshell

注入出管理的密码加密值,官方存在解密工具,直接利用得到解出后的密码“Admin555222111...”

进入后台,发现文件上传设置修改功能:

010-实战Java篇-颇为简单的一次审计getshell

看到这个功能,比爱情来临时的多巴胺分泌还要多,果断尝试getshell,体验安服仔的快乐爱情!

010-实战Java篇-颇为简单的一次审计getshell

结果发现shell变成下载了,GG,心凉了大半截,呵呵呵呵

一看就是JAR启的服务,瞬间没心态

没办法,为了RMB,还得重新看看代码,寻找属于我的爱情

2、XML注入

XXXXXController.java

010-实战Java篇-颇为简单的一次审计getshell

POST接受参数,继续追weChatMessageService.init看看是怎么走的

010-实战Java篇-颇为简单的一次审计getshell

颇为明显的XML注入

010-实战Java篇-颇为简单的一次审计getshell

同样手拿把掐,直接构造payload打目标站,发现没有反应

一开始考虑是不是没回显,于是去找官方demo站测试一波

010-实战Java篇-颇为简单的一次审计getshell

官方demo测试没有问题,能带回显出来

回到目标站继续测试无回显,尝试FTP协议外带出来

010-实战Java篇-颇为简单的一次审计getshell

无论怎么更换payload都无法外带出来/etc/passwd

思考了一会儿,同一套源码官方demo可打,目标站不可打

可能是对源码进行了二开或者相关功能模块被关闭了

遂进目标站后台,与官方demo对比发现功能被阉割

但在后台并没有显示,那就抓包手动开启

010-实战Java篇-颇为简单的一次审计getshell

抓包官方demo,并把接口与对应ID值记录下来,替换到目标站中成功发包利用

010-实战Java篇-颇为简单的一次审计getshell

对着目标站直接就一发入魂

010-实战Java篇-颇为简单的一次审计getshell

接下来就简单了,读秘钥连服务器连数据库

然而,理想很丰满,现实很骨感,翻了半天没找到秘钥,基本可以进行死亡宣告了

本想休息两天,奈何爱情的力量永远是那么强大!

010-实战Java篇-颇为简单的一次审计getshell

3、峰回路转

再次进行信息收集,思路:原URL是XXX.XXX.XXX.com  换思路继续缩短域名xxx.xxx.com进行信息收集,果然别有洞天

010-实战Java篇-颇为简单的一次审计getshell

发现了疑似运维的机器,存在一个运维面板以及目标站商城

测试发现,后台账号密码、数据库都是同步的

再次利用XXE漏洞,翻文件做信息收集

010-实战Java篇-颇为简单的一次审计getshell

发现tomcat服务,利用刚刚信息收集的ip地址找到对应的服务

一开始是想读shiro秘钥进行getshell,奈何文件太大读不了

于是转变思路,尝试找tomact对应起的web服务,通过目标站后台修改文件上传功能,把文件路径变成tomcatweb路径,最终getshell

010-实战Java篇-颇为简单的一次审计getshell

发现存在数据库连接

不可得之人,到手,哈哈哈

010-实战Java篇-颇为简单的一次审计getshell

文末总结

勿忘初心、合法渗透

坚持学习、保持分享

诸君加油共勉,一切皆为可得!

原文始发于微信公众号(哈拉少安全小队):010-实战Java篇-颇为简单的一次审计getshell

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月15日23:59:04
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   010-实战Java篇-颇为简单的一次审计getshellhttp://cn-sec.com/archives/2164093.html

发表评论

匿名网友 填写信息