Basic Java Deserialization (ObjectInputStream, readObject)
In hierdie POS sal 'n voorbeeld met behulp van java.io.Serializable
verduidelik word.
Serializable
Die Java Serializable
-koppelvlak (java.io.Serializable
) is 'n merkkoppelvlak wat jou klasse moet implementeer as dit geserializeer en gedeserializeer moet word. Java-objek-serialisering (skryf) word gedoen met die ObjectOutputStream en deserialisering (lees) word gedoen met die ObjectInputStream.
Kom ons kyk na 'n voorbeeld met 'n klas Persoon wat serialiseerbaar is. Hierdie klas skryf die readObject-funksie oor, sodat wanneer enige objek van hierdie klas gedeserializeer word, sal hierdie funksie uitgevoer word.
In die voorbeeld roep die readObject-funksie van die Persoon-klas die funksie eat()
van sy troeteldier aan en die funksie eat()
van 'n Hond (om een of ander rede) roep 'n calc.exe aan. Ons gaan sien hoe om 'n Persoon-objek te serialiseer en deserialiseer om hierdie sakrekenaar uit te voer:
Die volgende voorbeeld is vanaf https://medium.com/@knownsec404team/java-deserialization-tool-gadgetinspector-first-glimpse-74e99e493649
Gevolgtrekking
Soos jy kan sien in hierdie baie basiese voorbeeld, kom die "kwesbaarheid" hier voor omdat die readObject-funksie ander kwesbare funksies aanroep.
Last updated