Basic Java Deserialization (ObjectInputStream, readObject)
Katika POST hii itafafanuliwa mfano ukitumia java.io.Serializable
.
Serializable
Java Serializable
interface (java.io.Serializable
ni interface ya alama ambayo darasa zako lazima zitekeleze ikiwa zinapaswa kuwa serialized na deserialized. Uandishi wa serialization ya kitu cha Java unafanywa na ObjectOutputStream na usomaji wa deserialization unafanywa na ObjectInputStream.
Hebu tuone mfano wa darasa la Person ambalo ni serializable. Darasa hili linakandamiza kazi ya readObject, hivyo wakati kitu chochote cha darasa hili kinapokuwa deserialized kazi hii itatekelezwa.
Katika mfano, kazi ya readObject ya darasa la Person inaita kazi eat()
ya mnyama wake na kazi eat()
ya Mbwa (kwa sababu fulani) inaita calc.exe. Tutashuhudia jinsi ya kuunda na kuondoa kitu cha Person ili kutekeleza kalkuleta hii:
Mfano ufuatao umetolewa kutoka https://medium.com/@knownsec404team/java-deserialization-tool-gadgetinspector-first-glimpse-74e99e493649
Hitimisho
Kama unavyoona katika mfano huu wa msingi, "udhaifu" hapa unaonekana kwa sababu ya kazi ya readObject ambayo in aita kazi nyingine zenye udhaifu.
Last updated