[21333] 2020-10-23_WAF代码剖析之初识openresty

文档创建者:s7ckTeam
浏览次数:8
最后更新:2025-01-18
2020-10-23_WAF代码剖析之初识openresty W A F o p e n r e s t y   F r e e B u f   L e m o n S e c   2 0 2 0 - 1 0 - 2 3 使 W A F 仿 W A F W A F W A F o p e n r e s t y a c c e s s o p e n r e s t y W A F o p e n r e s t y W A F n g i n x m o d s e c u r i t y W A F C W A F n g i n x o p e n r e s t y o p e n r e s t y n g i n x l u a W A F j x w a f o p e n s t a r n g x _ l u a _ w a f j x w a f W A F l e t s   g o ~ ~ o p e n r e s t y o p e n r e s t y 1 1
h t t p s : / / o p e n r e s t y - r e f e r e n c e . r e a d t h e d o c s . i o / e n / l a t e s t / D i r e c t i v e s / n g i n x . c o n f i n i t _ b y _ l u a * h t t p   n g i n x     l u a ( n g i n x     r e l o a d   ) i n i t _ w o r k e r _ b y _ l u a * h t t p ( w o r k e r _ p r o c e s s e s ) | |   s s l _ c e r t i f i c a t e _ b y _ l u a *   |   s e r v e r   |   H T T P S   | |   s e t _ b y _ l u a *   |   s e r v e r ,   s e r v e r   i f ,   l o c a t i o n ,   l o c a t i o n   i f   |     | |   r e w r i t e _ b y _ l u a *   |   h t t p ,   s e r v e r ,   l o c a t i o n ,   l o c a t i o n   i f   |     | |   a c c e s s _ b y _ l u a *   |   h t t p ,   s e r v e r ,   l o c a t i o n ,   l o c a t i o n   i f   |   W A F   | |   c o n t e n t _ b y _ l u a *   |   l o c a t i o n ,   l o c a t i o n   i f   |   r e s p o n s e   | |   b a l a n c e r _ b y _ l u a *   |   u p s t r e a m   |     | |   h e a d e r _ f i l t e r _ b y _ l u a *   |   h t t p ,   s e r v e r ,   l o c a t i o n ,   l o c a t i o n   i f   |   h e a d e r s   | |   b o d y _ f i l t e r _ b y _ l u a *   |   h t t p ,   s e r v e r ,   l o c a t i o n ,   l o c a t i o n   i f   |   b o d y   | |   l o g _ b y _ l u a *   |   h t t p ,   s e r v e r ,   l o c a t i o n ,   l o c a t i o n   i f   |     | j x w a f n g i n x h t t p   {         i n c l u d e               m i m e . t y p e s ;         d e f a u l t _ t y p e     a p p l i c a t i o n / o c t e t - s t r e a m ;         c l i e n t _ b o d y _ b u f f e r _ s i z e     1 0 0 m ;         c l i e n t _ m a x _ b o d y _ s i z e   1 0 m ;         s e n d f i l e                 o n ;
        # t c p _ n o p u s h           o n ;         r e s o l v e r     1 1 4 . 1 1 4 . 1 1 4 . 1 1 4 ;     r e s o l v e r _ t i m e o u t   5 s ;         # k e e p a l i v e _ t i m e o u t     0 ;         k e e p a l i v e _ t i m e o u t     6 5 ;         l u a _ s s l _ t r u s t e d _ c e r t i f i c a t e     / e t c / p k i / t l s / c e r t s / c a - b u n d l e . c r t ;         l u a _ s s l _ v e r i f y _ d e p t h   3 ; l u a _ s h a r e d _ d i c t   l i m i t _ r e q   1 0 0 m ; l u a _ s h a r e d _ d i c t   l i m i t _ r e q _ c o u n t   1 0 0 m ; l u a _ s h a r e d _ d i c t   l i m i t _ a t t a c k _ i p   1 0 0 m ; l u a _ s h a r e d _ d i c t   l i m i t _ b o t   1 0 0 m ; l u a _ s h a r e d _ d i c t   w a f _ c o m m o n _ c o n f   1 0 0 m ; l u a _ s h a r e d _ d i c t   b l a c k _ a t t a c k _ i p   1 0 0 m ; i n i t _ b y _ l u a _ f i l e   / o p t / j x w a f / l u a l i b / r e s t y / j x w a f / i n i t . l u a ; i n i t _ w o r k e r _ b y _ l u a _ f i l e   / o p t / j x w a f / l u a l i b / r e s t y / j x w a f / i n i t _ w o r k e r . l u a ; r e w r i t e _ b y _ l u a _ f i l e   / o p t / j x w a f / l u a l i b / r e s t y / j x w a f / r e w r i t e . l u a ; a c c e s s _ b y _ l u a _ f i l e   / o p t / j x w a f / l u a l i b / r e s t y / j x w a f / a c c e s s . l u a ; h e a d e r _ f i l t e r _ b y _ l u a _ f i l e   / o p t / j x w a f / l u a l i b / r e s t y / j x w a f / h e a d e r _ f i l t e r . l u a ; # b o d y _ f i l t e r _ b y _ l u a _ f i l e   / o p t / j x w a f / l u a l i b / r e s t y / j x w a f / b o d y _ f i l t e r . l u a ; l o g _ b y _ l u a _ f i l e   / o p t / j x w a f / l u a l i b / r e s t y / j x w a f / l o g . l u a ; r e w r i t e _ b y _ l u a _ n o _ p o s t p o n e   o n ;         # g z i p     o n ;         u p s t r e a m   j x w a f   {         s e r v e r   w w w . j x w a f . c o m ;     b a l a n c e r _ b y _ l u a _ f i l e   / o p t / j x w a f / l u a l i b / r e s t y / j x w a f / b a l a n c e r . l u a ; } l u a _ c o d e _ c a c h e   o n ;         s e r v e r   {                 l i s t e n               8 0 ;                 s e r v e r _ n a m e     l o c a l h o s t ;                 s e t   $ p r o x y _ p a s s _ h t t p s _ f l a g   " f a l s e " ;                 l o c a t i o n   /   {                         # r o o t       h t m l ;                       #   i n d e x     i n d e x . h t m l   i n d e x . h t m ;                     i f   ( $ p r o x y _ p a s s _ h t t p s _ f l a g   =   " t r u e " ) {                         p r o x y _ p a s s   h t t p s : / / j x w a f ;                     }                     i f   ( $ p r o x y _ p a s s _ h t t p s _ f l a g   =   " f a l s e " ) {                         p r o x y _ p a s s   h t t p : / / j x w a f ;                     }                       p r o x y _ s e t _ h e a d e r   H o s t     $ h t t p _ h o s t ;                       p r o x y _ s e t _ h e a d e r   X - R e a l - I P   $ r e m o t e _ a d d r ;                       p r o x y _ s e t _ h e a d e r   X - F o r w a r d e d - F o r   $ p r o x y _ a d d _ x _ f o r w a r d e d _ f o r ;                 }         }         s e r v e r   {                 l i s t e n               4 4 3   s s l ;                 s e r v e r _ n a m e     l o c a l h o s t ;                 s s l _ c e r t i f i c a t e             f u l l _ c h a i n . p e m ;                 s s l _ c e r t i f i c a t e _ k e y     p r i v a t e . k e y ;
o p e n r e s t y l u a _ s s l _ t r u s t e d _ c e r t i f i c a t e / e t c / p k i / t l s / c e r t s / c a - b u n d l e . c r t ; l u a _ s s l _ v e r i f y _ d e p t h 3 ; l u a _ s h a r e d _ d i c t   l i m i t _ r e q   1 0 0 m ; r e w r i t e _ b y _ l u a _ n o _ p o s t p o n e   o n ; l u a _ c o d e _ c a c h e   o n ;                 s s l _ c e r t i f i c a t e _ k e y     p r i v a t e . k e y ;                 s s l _ s e s s i o n _ c a c h e         s h a r e d : S S L : 1 m ;                 s s l _ s e s s i o n _ t i m e o u t     5 m ;                 s s l _ s e s s i o n _ t i c k e t s   o f f ;                 s s l _ p r o t o c o l s   T L S v 1   T L S v 1 . 1   T L S v 1 . 2 ;                 s s l _ c i p h e r s   " E E C D H + A E S G C M : E D H + A E S G C M : A E S 2 5 6 + E E C D H : A E S 2 5 6 + E D H : E C D H E - R S A - A E S 1 2 8 - G C M - S H A 3 8 4 : E C D H E - R S A - A E S 1 2 8 - G C M - S H A 2 5 6 : E C D H E - R S A - A E S 1 2 8 - G C M - S H A 1 2 8 : D H E - R S A - A E S 1 2 8 - G C M - S H A 3 8 4 : D H E - R S A - A E S 1 2 8 - G C M - S H A 2 5 6 : D H E - R S A - A E S 1 2 8 - G C M - S H A 1 2 8 : E C D H E - R S A - A E S 1 2 8 - S H A 3 8 4 : E C D H E - R S A - A E S 1 2 8 - S H A 1 2 8 : E C D H E - R S A - A E S 1 2 8 - S H A : E C D H E - R S A - A E S 1 2 8 - S H A : D H E - R S A - A E S 1 2 8 - S H A 1 2 8 : D H E - R S A - A E S 1 2 8 - S H A 1 2 8 : D H E - R S A - A E S 1 2 8 - S H A : D H E - R S A - A E S 1 2 8 - S H A : E C D H E - R S A - D E S - C B C 3 - S H A : E D H - R S A - D E S - C B C 3 - S H A : A E S 1 2 8 - G C M - S H A 3 8 4 : A E S 1 2 8 - G C M - S H A 1 2 8 : A E S 1 2 8 - S H A 1 2 8 : A E S 1 2 8 - S H A 1 2 8 : A E S 1 2 8 - S H A : A E S 1 2 8 - S H A : D E S - C B C 3 - S H A : H I G H : ! a N U L L : ! e N U L L : ! E X P O R T : ! D E S : ! M D 5 : ! P S K : ! R " ;                 s s l _ p r e f e r _ s e r v e r _ c i p h e r s     o n ;                 s s l _ c e r t i f i c a t e _ b y _ l u a _ f i l e   / o p t / j x w a f / l u a l i b / r e s t y / j x w a f / s s l . l u a ;                 s e t   $ p r o x y _ p a s s _ h t t p s _ f l a g   " f a l s e " ;                 l o c a t i o n   /   {                         r o o t       h t m l ;                         i n d e x     i n d e x . h t m l   i n d e x . h t m ;                     i f   ( $ p r o x y _ p a s s _ h t t p s _ f l a g   =   " t r u e " ) {                         p r o x y _ p a s s   h t t p s : / / j x w a f ;                     }                     i f   ( $ p r o x y _ p a s s _ h t t p s _ f l a g   =   " f a l s e " ) {                         p r o x y _ p a s s   h t t p : / / j x w a f ;                     }                         p r o x y _ s e t _ h e a d e r   H o s t     $ h t t p _ h o s t ;                         p r o x y _ s e t _ h e a d e r   X - R e a l - I P   $ r e m o t e _ a d d r ;                         p r o x y _ s e t _ h e a d e r   X - F o r w a r d e d - F o r   $ p r o x y _ a d d _ x _ f o r w a r d e d _ f o r ;                 }         } } C A   b u n d l e 使 t e m s o c k s s l h a n d s h a k e P E M C A S S L   /   T L S R o o t   C A I n t e r m e d i a t e   C A I n t e r m e d i a t e   C A I n t e r m e d i a t e   C A R o o t   C A R o o t   C A I n t e r m e d i a t e   C A I n t e r m e d i a t e   C A 3 R o o t   C A n g i n x S Q L X S S o p e n r e s t y o p e n c l o s e r e w r i t e _ b y _ l u a r e w r i t e o f f ,   r e w r i t e _ b y _ l u a L u a N g i n x   r e w r i t e
o p e n r e s t y 1 1 j x w a f 8 8 j x w a f o p e n r e s t y 1 . 1 5 . 8 . 3 使 c e n t o s 7 w i n d o w s W i n d o w s o p e n r e s t y W A F L U A L U A p y c h a r m I D E L U A   I D E 使 v s c o d e + l u a L u a   D e b u g l u a h t t p s : / / l i n u x . c i / 2 0 1 . h t m l n g i n x y u m   i n s t a l l   - y   r e a d l i n e - d e v e l   p c r e   p c r e - d e v e l   o p e n s s l   o p e n s s l - d e v e l   g c c   c u r l   G e o I P - d e v e l     w g e t   w g e t   h t t p s : / / o p e n r e s t y . o r g / d o w n l o a d / o p e n r e s t y - 1 . 1 5 . 8 . 3 . t a r . g z   t a r   - x v f   o p e n r e s t y - 1 . 1 5 . 8 . 3 . t a r . g z   c d   o p e n r e s t y - 1 . 1 5 . 8 . 3   . / c o n f i g u r e   - j 2   m a k e   - j 2   m a k e   i n s t a l l h t t p s : / / o p e n r e s t y . o r g / d o w n l o a d / o p e n r e s t y - 1 . 1 5 . 8 . 3 - w i n 6 4 . z i p
F 5 l u a n g i n x . c o n f l u a _ c o d e _ c a c h e r e l o a d   n g i n x n g i n x c o n t e n t _ b y _ l u a _ f i l e t e s t . l u a w o r k e r _ p r o c e s s e s     1 ; e v e n t s   {         w o r k e r _ c o n n e c t i o n s     1 0 2 4 ; }
2 0 2 0 h w H W D N S c t f -   - a n d r o i d } h t t p   { l u a _ c o d e _ c a c h e   o f f ;         s e r v e r   {                 l o c a t i o n   / t e s t   {                       d e f a u l t _ t y p e   ' t e x t / p l a i n ' ;                       c o n t e n t _ b y _ l u a _ f i l e   ' D : / w a f / t e s t . l u a ' ;                 }         } } # t e s t . l u a l o c a l   n a m e   =     " A n o n y m o u s " n g x . s a y ( " H e l l o ,   " ,   n a m e ,   " ! " ) n g x . s a y ( " t e s t " )
L e m o n S e c
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则