[297] 2019-05-28_LDAP注入与防御

文档创建者:s7ckTeam
浏览次数:2
最后更新:2025-01-16
2019-05-28_LDAP注入与防御 L D A P     a F a   2 0 1 9 - 0 5 - 2 8 0 x 0 0 L D A P   L i g h t w e i g h t   D i r e c t o r y   A c c e s s   P r o t o c o l 访 访 L D A P   便 便   L D A P   0 x 0 1   L D A P   L D A P  
d n   d c   o u   c n   L D A P     L D A P     ( d c )   ( o u ) ( c n )   L D A P     L D A P   =   N a m e     w e i k e t a n g   &   N a m e     w e i k e t a n g     1   |   N a m e     w e i k e t a n g !   N a m e     w e i k e t a n g   *   N a m e   使   w e i   ( N a m e = w e i )   w e i   ( & ( N a m e = w e i ) ( | ( a d d r = b e i j i n g ) ( a d d r = s h a n g h a i ) ) ) . 0 x 0 2 ( N a m e = w e i k e t a n g ) ( & ( N a m e = w e i k e t a n g ) ( s e x = 1 ) ) ( ! ( N a m e = w e i k e t a n g ) ( s e x = 1 ) ) ( ! N a m e = w e i k e t a n g ) ( N a m e = * )
L D A P     S Q L   便   O p e n L D A P     O p e n L D A P   使   L D A P   A d m i n     L D A P   d n     d c = m a x c r c , d c = c o m o u     c n   u i d   L D A P   A d m i n     l u     ( | ( u i d = l u ) ( d i s p l a y N a m e = l u ) ( c n = l u ) ( s n = l u ) ) 0 x 0 3 b w a p p 使   b w a p p     l d a p     p h p     l d a p _ c o n n e c t . p h p $ m e s s a g e   =   " " ; $ l o g i n   =   " b e e @ b w a p p . l o c a l " ; $ p a s s w o r d   =   " " ; $ s e r v e r   =   " " ; $ d n   =   " D C = b w a p p , D C = l o c a l " ; i f ( i s s e t ( $ _ R E Q U E S T [ " c l e a r " ] ) ) {         / /   C l e a r s   t h e   L D A P   s e t t i n g s         $ _ S E S S I O N [ " l d a p " ]   =   a r r a y ( ) ;         $ m e s s a g e   =   " < f o n t   c o l o r = " g r e e n " > S e t t i n g s   c l e a r e d   s u c c e s s f u l l y ! < / f o n t > " ;       } i f ( i s s e t ( $ _ R E Q U E S T [ " s e t " ] )   & &   i s s e t ( $ _ R E Q U E S T [ " l o g i n " ] )   & &   i s s e t ( $ _ R E Q U E S T [ " p a s s w o r d " ] )   & &   i s s e t ( $ _ R E Q U E S T [ {           / /   L D A P   c o n n e c t i o n   s e t t i n g s         $ l o g i n   =   $ _ R E Q U E S T [ " l o g i n " ] ;
  l d a p   使   l d a p _ c o n n e c t           $ l o g i n   =   $ _ R E Q U E S T [ " l o g i n " ] ;         $ p a s s w o r d   =   $ _ R E Q U E S T [ " p a s s w o r d " ] ;         $ s e r v e r   =   $ _ R E Q U E S T [ " s e r v e r " ] ;         $ d n   =   $ _ R E Q U E S T [ " d n " ] ;         i f ( $ l o g i n   = =   " "   | |   $ p a s s w o r d   = =   " "   | |   $ s e r v e r   = =   " "   | |   $ d n   = =   " " ) {                 $ m e s s a g e   =   " < f o n t   c o l o r = " r e d " > P l e a s e   e n t e r   a l l   f i e l d s ! < / f o n t > " ;             } e l s e {                     / /   C o n n e c t s   a n d   b i n d s   t o   t h e   L D A P   s e r v e r                 $ d s   =   l d a p _ c o n n e c t ( $ s e r v e r ) ;                 l d a p _ s e t _ o p t i o n ( $ d s ,   L D A P _ O P T _ P R O T O C O L _ V E R S I O N ,   3 ) ; / /   S e t s   t h e   L D A P   p r o t o c o l   u s e d   b y   t h e   A D   s e r v i c e                 l d a p _ s e t _ o p t i o n ( $ d s ,   L D A P _ O P T _ R E F E R R A L S ,   0 ) ;                 $ r   =   @ l d a p _ b i n d ( $ d s ,   $ l o g i n ,   $ p a s s w o r d ) ;                 / /   $ r   =   @ l d a p _ b i n d ( $ d s ,   $ d o m a i n   .   " "   .   $ l o g i n ,   $ p a s s w o r d ) ; / /   P r e - W i n d o w s   2 0 0 0   u s e r n a m e                 / /   $ r   =   @ l d a p _ b i n d ( $ d s ) ; / /   A n o n y m o u s   l o g i n .   N e e d s   s o m e   a d j u s t m e n t s   i n   A D !                       / /   D e b u g g i n g                 / /   P r i n t s   T R U E   i f   t h e   c r e d e n t i a l s   a r e   v a l i d                 / /   p r i n t _ r ( $ r ) ;                 i f ( ! $ r ) {                           $ m e s s a g e   =   " < f o n t   c o l o r = " r e d " > I n v a l i d   c r e d e n t i a l s   o r   i n v a l i d   s e r v e r ! < / f o n t > " ;                 } e l s e {                         $ f i l t e r   =   " ( c n = * ) " ;                                           / /   C h e c k s   i f   t h e   b a s e   D N   h a s   a   v a l i d   s y n t a x                         i f ( ! ( $ s e a r c h = @ l d a p _ s e a r c h ( $ d s ,   $ d n ,   $ f i l t e r ) ) ) {                               $ m e s s a g e   =   " < f o n t   c o l o r = " r e d " > B a s e   D N   i n v a l i d   s y n t a x ! < / f o n t > " ;                                                     } e l s e {                                                         / /   C h e c k s   i f   t h e   b a s e   D N   i s   v a l i d                                 $ n u m b e r _ r e t u r n e d   =   l d a p _ c o u n t _ e n t r i e s ( $ d s , $ s e a r c h ) ;                                                         i f ( $ n u m b e r _ r e t u r n e d   = =   0 ) {                                                                               $ m e s s a g e   =   " < f o n t   c o l o r = " r e d " > B a s e   D N   i n v a l i d ! < / f o n t > " ;                                                                   }                                                         / /   I f   t h e   c o n n e c t i o n   s e t t i n g s   a r e   v a l i d                                 e l s e {                                         $ _ S E S S I O N [ " l d a p " ] [ " l o g i n " ]   =   $ l o g i n ;                                         $ _ S E S S I O N [ " l d a p " ] [ " p a s s w o r d " ]   =   $ p a s s w o r d ;                                         $ _ S E S S I O N [ " l d a p " ] [ " s e r v e r " ]   =   $ s e r v e r ;                                         $ _ S E S S I O N [ " l d a p " ] [ " d n " ]   =   $ d n ;                                                                                                                 / /   $ m e s s a g e   =   " < f o n t   c o l o r = " g r e e n " > V a l i d   c o n n e c t i o n   s e t t i n g s ! < / f o n t > " ;                                         h e a d e r ( " L o c a t i o n :   l d a p i . p h p " ) ;                                         e x i t ;                                                                       }                                               }                 }                 l d a p _ c l o s e ( $ d s ) ;                     } }
  O p e n L D A P     d n     d n   l d a p     d n     l d a p i . p h p     l u   l d a p i     *  
  l d a p i . p h p     r e q u e s t     u s e r     s e a r c h _ f o r     f i l t e r     l d a p     s q l     l d a p   便 0 x 0 4   u s e r     l d a p i     l d a p i           $ s e a r c h _ f o r   =   $ _ R E Q U E S T [ " u s e r " ] ; / /   T h e   s t r i n g   t o   f i n d         $ s e a r c h _ f o r   =   l d a p i ( $ s e a r c h _ f o r ) ;         $ s e a r c h _ f i e l d _ 1   =   " g i v e n n a m e " ; / /   T h e   L D A P   f i e l d   t o   s e a r c h   f o r   t h e   s t r i n g         $ s e a r c h _ f i e l d _ 2   =   " s n " ; / /   T h e   L D A P   f i e l d   t o   s e a r c h   f o r   t h e   s t r i n g         $ s e a r c h _ f i e l d _ 3   =   " u s e r p r i n c i p a l n a m e " ; / /   T h e   L D A P   f i e l d   t o   s e a r c h   f o r   t h e   s t r i n g         / / $ s e a r c h _ f i e l d   =   " u s e r p r i n c i p a l n a m e " ; / /   T h e   L D A P   f i e l d   t o   s e a r c h   f o r   t h e   s t r i n g                   / /   F i l t e r s   t h e   L D A P   s e a r c h         / /   $ f i l t e r   =   " C N = * " ; / /   S e a r c h e s   a l l   t h e   ' C o m m o n   N a m e s '         / /   $ f i l t e r   =   " ( $ s e a r c h _ f i e l d = $ s e a r c h _ f o r * ) " ; / /   W i l d c a r d   i s   * .   R e m o v e   i t   i f   y o u   w a n t   a n   e x a c t   m a t c h         / /   $ f i l t e r   =   " ( $ s e a r c h _ f i e l d = $ s e a r c h _ f o r ) " ; / /   E x a c t   m a t c h         / /   $ f i l t e r   =   " ( o b j e c t C l a s s = u s e r ) " ; / /   S e a r c h e s   a l l   t h e   u s e r s         / /   $ f i l t e r   =   " ( & ( $ s e a r c h _ f i e l d = $ s e a r c h _ f o r ) ( o b j e c t C l a s s = u s e r ) ) " ; / /   S e a r c h e s   a   s p e c i f i c   u s e r         / /   $ f i l t e r   =   " ( & ( $ s e a r c h _ f i e l d = $ s e a r c h _ f o r ) ( o b j e c t C l a s s = u s e r ) ( o b j e c t C a t e g o r y = p e r s o n ) ) " ; / /   S e a r c h e s   a   s p e c i f i c   u s e r         / / $ f i l t e r   =   " ( | ( $ s e a r c h _ f i e l d = $ s e a r c h _ f o r ) ) " ; / /   I n j e c t i o n ! ! !             $ f i l t e r   =   " ( | ( $ s e a r c h _ f i e l d _ 1 = $ s e a r c h _ f o r ) ( $ s e a r c h _ f i e l d _ 2 = $ s e a r c h _ f o r ) ( $ s e a r c h _ f i e l d _ 3 = $ s e a r c h _ f o r ) ) "         / /   C o m m o n   L D A P   q u e r i e s         / /   h t t p : / / w w w . g o o g l e . c o m / s u p p o r t / e n t e r p r i s e / s t a t i c / g a p p s / d o c s / a d m i n / e n / g a d s / a d m i n / l d a p . 5 . 4 . h t m l             / /   R e t r i e v e s   o n l y   s p e c i f i c   a t t r i b u t e s         $ l d a p _ f i e l d s _ t o _ f i n d   =   a r r a y ( " o b j e c t s i d " ,   " s a m a c c o u n t n a m e " ,   " u s e r p r i n c i p a l n a m e " ,   " c n " ,   " d i s p l a y n a m e " ) ;         / /   S e a r c h e s   t h e   L D A P   d a t a b a s e         / /   $ s r   =   l d a p _ s e a r c h ( $ d s ,   $ d n ,   $ f i l t e r ) ;         $ s r   =   l d a p _ s e a r c h ( $ d s ,   $ d n ,   $ f i l t e r ,   $ l d a p _ f i e l d s _ t o _ f i n d ) ;
0 1 2   0   1     2     l d a p i . p h p     f u n c t i o n _ e x t e r n a l . p h p   n o _ c h e c k   l d a p i _ c h e c k _ 1     l d a p     l d a p i _ c h e c k _ 1   f u n c t i o n   l d a p i ( $ d a t a ) {                           s w i t c h ( $ _ C O O K I E [ " s e c u r i t y _ l e v e l " ] )         {                                 c a s e   " 0 "   :                                                   $ d a t a   =   n o _ c h e c k ( $ d a t a ) ;                                               b r e a k ;                                 c a s e   " 1 "   :                                               $ d a t a   =   l d a p i _ c h e c k _ 1 ( $ d a t a ) ;                         b r e a k ;                                 c a s e   " 2 "   :                                                                                               $ d a t a   =   l d a p i _ c h e c k _ 1 ( $ d a t a ) ;                                                 b r e a k ;                                 d e f a u l t   :                                                   $ d a t a   =   n o _ c h e c k ( $ d a t a ) ;                                                 b r e a k ;               }                       r e t u r n   $ d a t a ; } f u n c t i o n   n o _ c h e c k ( $ d a t a ) {                       r e t u r n   $ d a t a ;             } f u n c t i o n   l d a p i _ c h e c k _ 1 ( $ d a t a ) {         / /   R e p l a c e s   d a n g e r o u s   c h a r a c t e r s :   (   )   =   &   |   *   W H I T E S P A C E         $ i n p u t   =   s t r _ r e p l a c e ( " ( " ,   " " ,   $ d a t a ) ;         $ i n p u t   =   s t r _ r e p l a c e ( " ) " ,   " " ,   $ i n p u t ) ;         $ i n p u t   =   s t r _ r e p l a c e ( " = " ,   " " ,   $ i n p u t ) ;         $ i n p u t   =   s t r _ r e p l a c e ( " & " ,   " " ,   $ i n p u t ) ;         $ i n p u t   =   s t r _ r e p l a c e ( " | " ,   " " ,   $ i n p u t ) ;         $ i n p u t   =   s t r _ r e p l a c e ( " * " ,   " " ,   $ i n p u t ) ;         $ i n p u t   =   s t r _ r e p l a c e ( "   " ,   " " ,   $ i n p u t ) ;               r e t u r n   $ i n p u t ;         }
  l d a p   ( ) = & | * 0 x 0 5 l d a p     l d a p   l d a p     3 8 9   6 3 6   g e t
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则