[15619] 2020-07-18_BBPress未经身份验证的提权漏洞分析

文档创建者:s7ckTeam
浏览次数:14
最后更新:2025-01-18
2020-07-18_BBPress未经身份验证的提权漏洞分析 B B P r e s s N e r o q i   F r e e B u f   2 0 2 0 - 0 7 - 1 8 B B P r e s s W o r d P r e s s B B P r e s s 3 0 W o r d P r e s s B B P r e s s < = 2 . 6 . 4 C V S S 9 . 8 B B P r e s s / / 1 . a d d _ f i l t e r s i g n u p _ u s e r _ m e t a b b p _ u s e r _ a d d _ r o l e _ t o _ s i g n u p _ m e t a 2 . 1 a d d _ f i l t e r b b p _ u s e r _ a d d _ r o l e _ t o _ s i g n u p _ m e t a 2 . 1 b b p _ u s e r _ a d d _ r o l e _ t o _ s i g n u p _ m e t a 使 P O S T b b p - f o r u m s - r o l e P O S T b b p - f o r u m s - r o l e $ f o r u m _ r o l e b b p - f o r u m s - r o l e B B P r e s s $ f o r u m _ r o l e 2 . 2 b b p _ g e t _ d y n a m i c _ r o l e s ( ) B B P r e s s 2 . 3 $ f o r u m _ r o l e B B P r e s s 2 . 4 b b p - f o r u m s - r o l e P O S T W o r d P r e s s 3 . b b p _ g e t _ d y n a m i c _ r o l e s ( )   B B P r e s s a p p l y _ f i l t e r s b b p _ g e t _ d y n a m i c _ r o l e s 1 . B u r p S u i t e   v 2 . 1 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 . B B P r e s s 2 . 6 . 4 a d d _ f i l t e r (   ' s i g n u p _ u s e r _ m e t a ' ,   ' b b p _ u s e r _ a d d _ r o l e _ t o _ s i g n u p _ m e t a ' ,   1 0   ) ; f u n c t i o n   b b p _ u s e r _ a d d _ r o l e _ t o _ s i g n u p _ m e t a (   $ m e t a   =   a r r a y ( )   )   {         $ f o r u m _ r o l e   =   i s s e t (   $ _ P O S T [ ' b b p - f o r u m s - r o l e ' ]   )                 ?   s a n i t i z e _ k e y (   $ _ P O S T [ ' b b p - f o r u m s - r o l e ' ]   )                 :   b b p _ g e t _ d e f a u l t _ r o l e ( ) ;         $ r o l e s   =   a r r a y _ k e y s (   b b p _ g e t _ d y n a m i c _ r o l e s ( )   ) ;         i f   (   e m p t y (   $ f o r u m _ r o l e   )   | |   !   i n _ a r r a y (   $ f o r u m _ r o l e ,   $ r o l e s ,   t r u e   )   )   {                 r e t u r n   $ m e t a ;         }         $ m e t a [ ' b b p _ n e w _ r o l e ' ]   =   $ f o r u m _ r o l e ;         r e t u r n   $ m e t a ; }
4 . b b p _ g e t _ k e y m a s t e r _ r o l e ( ) b b p _ g e t _ k e y m a s t e r _ r o l e b b p _ k e y m a s t e r p o s t b b p _ k e y m a s t e r b b p _ k e y m a s t e r B B P r e s s 1 . 2 . 6 . 5 b b p _ u s e r _ a d d _ r o l e _ t o _ s i g n u p _ m e t a b b p _ v a l i d a t e _ r e g i s t r a t i o n _ r o l e (   $ t o _ v a l i d a t e   ) P O S T b b p - f o r u m s - r o l e 2 . b b p _ v a l i d a t e _ r e g i s t r a t i o n _ r o l e W o r d P r e s s T r u e b b p _ p a r t i c i p a n t 3 . b b p _ g e t _ d e f a u l t _ r o l e f u n c t i o n   b b p _ g e t _ d y n a m i c _ r o l e s ( )   {         $ t o _ a r r a y   =   a r r a y ( ) ;         $ r o l e s         =   b b p r e s s ( ) - > r o l e s ;         f o r e a c h   (   $ r o l e s   a s   $ r o l e _ i d   = >   $ w p _ r o l e   )   {                 $ t o _ a r r a y [   $ r o l e _ i d   ]   =   ( a r r a y )   $ w p _ r o l e ;         }         r e t u r n   ( a r r a y )   a p p l y _ f i l t e r s (   ' b b p _ g e t _ d y n a m i c _ r o l e s ' ,   $ t o _ a r r a y ,   $ r o l e s   ) ; } f u n c t i o n   b b p _ g e t _ k e y m a s t e r _ r o l e ( )   {         r e t u r n   a p p l y _ f i l t e r s (   ' b b p _ g e t _ k e y m a s t e r _ r o l e ' ,   ' b b p _ k e y m a s t e r '   ) ; } f u n c t i o n   b b p _ u s e r _ a d d _ r o l e _ t o _ s i g n u p _ m e t a (   $ m e t a   =   a r r a y ( )   )   {         i f   (   !   e m p t y (   $ m e t a [ ' b b p _ n e w _ r o l e ' ]   )   )   {                 r e t u r n   $ m e t a ;         }         $ t o _ v a l i d a t e   =   !   e m p t y (   $ _ P O S T [ ' b b p - f o r u m s - r o l e ' ]   )   & &   i s _ s t r i n g (   $ _ P O S T [ ' b b p - f o r u m s - r o l e ' ]   )                 ?   s a n i t i z e _ k e y (   $ _ P O S T [ ' b b p - f o r u m s - r o l e ' ]   )                 :   ' ' ;         $ v a l i d _ r o l e   =   b b p _ v a l i d a t e _ r e g i s t r a t i o n _ r o l e (   $ t o _ v a l i d a t e   ) ;         i f   (   b b p _ h a s _ e r r o r s ( )   )   {                 r e t u r n   $ m e t a ;         }         $ m e t a [ ' b b p _ n e w _ r o l e ' ]   =   $ v a l i d _ r o l e ;         r e t u r n   $ m e t a ; } f u n c t i o n   b b p _ v a l i d a t e _ r e g i s t r a t i o n _ r o l e (   $ t o _ v a l i d a t e   =   ' '   )   {         $ r e t v a l   =   b b p _ g e t _ d e f a u l t _ r o l e ( ) ;         i f   (   i s _ a d m i n ( )   & &   c u r r e n t _ u s e r _ c a n (   ' c r e a t e _ u s e r s '   )   )   {                 $ r e t v a l   =   $ t o _ v a l i d a t e ;         }         r e t u r n   b b p _ v a l i d a t e _ s i g n u p _ r o l e (   $ r e t v a l   ) ; } f u n c t i o n   b b p _ g e t _ d e f a u l t _ r o l e (   $ d e f a u l t   =   ' b b p _ p a r t i c i p a n t '   )   {
4 . b b p _ v a l i d a t e _ r e g i s t r a t i o n _ r o l e b b p _ v a l i d a t e _ s i g n u p _ r o l e (   $ r e t v a l   ) b b p _ v a l i d a t e _ s i g n u p _ r o l e (   $ r e t v a l   ) b b p _ i s _ v a l i d _ r o l e 5 . b b p _ i s _ v a l i d _ r o l e B B P r e s s < = 2 . 6 . 4 B B P r e s s 2 . 6 . 5 f u n c t i o n   b b p _ g e t _ d e f a u l t _ r o l e (   $ d e f a u l t   =   ' b b p _ p a r t i c i p a n t '   )   {         r e t u r n   a p p l y _ f i l t e r s (   ' b b p _ g e t _ d e f a u l t _ r o l e ' ,   g e t _ o p t i o n (   ' _ b b p _ d e f a u l t _ r o l e ' ,   $ d e f a u l t   )   ) ; } f u n c t i o n   b b p _ v a l i d a t e _ s i g n u p _ r o l e (   $ t o _ v a l i d a t e   =   ' '   )   {         $ r e t v a l   =   ' ' ;         i f   (   e m p t y (   $ t o _ v a l i d a t e   )   )   {                 b b p _ a d d _ e r r o r (   ' b b p _ s i g n u p _ r o l e _ e m p t y ' ,   _ _ (   ' E R R O R :   E m p t y   r o l e . ' ,   ' b b p r e s s '   )   ) ;         }         i f   (   !   b b p _ i s _ v a l i d _ r o l e (   $ t o _ v a l i d a t e   )   )   {                 b b p _ a d d _ e r r o r (   ' b b p _ s i g n u p _ r o l e _ i n v a l i d ' ,   _ _ (   ' E R R O R :   I n v a l i d   r o l e . ' ,   ' b b p r e s s '   )   ) ;         }         i f   (   !   b b p _ h a s _ e r r o r s ( )   )   {                 $ r e t v a l   =   $ t o _ v a l i d a t e ;         }         r e t u r n   ( s t r i n g )   a p p l y _ f i l t e r s (   ' b b p _ v a l i d a t e _ s i g n u p _ r o l e ' ,   $ r e t v a l ,   $ t o _ v a l i d a t e   ) ; } f u n c t i o n   b b p _ i s _ v a l i d _ r o l e (   $ r o l e   =   ' '   )   {         $ r e t v a l   =   f a l s e ;         i f   (   !   e m p t y (   $ r o l e   )   & &   i s _ s t r i n g (   $ r o l e   )   )   {                 $ r o l e s   =   a r r a y _ k e y s (   b b p _ g e t _ d y n a m i c _ r o l e s ( )   ) ;                 i f   (   !   e m p t y (   $ r o l e s   )   )   {                         $ r e t v a l   =   i n _ a r r a y (   $ r o l e ,   $ r o l e s ,   t r u e   ) ;                 }         }         r e t u r n   ( b o o l )   a p p l y _ f i l t e r s (   ' b b p _ i s _ v a l i d _ r o l e ' ,   $ r e t v a l ,   $ r o l e   ) ; }

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

本版积分规则