[15653] 2020-07-26_Java代码审计基础之反射

文档创建者:s7ckTeam
浏览次数:2
最后更新:2025-01-18
2020-07-26_Java代码审计基础之反射 J a v a x i a o p a n 2 3 3   F r e e B u f   2 0 2 0 - 0 7 - 2 6   -         C a t 1 2 C l a s s . f o r N a m e   C l a s s . f o r N a m e   3 C l a s s   a   =   C a t . c l a s s ; C l a s s   a   =   C l a s s . f o r N a m e ( " o r g . x i a o p a n . t e s t . C a t " ) ; C l a s s   a   =   ( n e w   C a t ( ) ) . g e t C l a s s ( ) ; c l a s s   C a t {         / /         p u b l i c   C a t ( ) {                 S y s t e m . o u t . p r i n t l n ( " C a t - > n u l l C a t " ) ;         }         / /   S t r i n g         p u b l i c   C a t ( S t r i n g   a ) {                 S y s t e m . o u t . p r i n t l n ( " C a t - > a C a t , a = "   +   a ) ;         }
g e t C o n s t r u c t o r           }         / /   S t r i n g     I n t e g e r         p r i v a t e   C a t ( S t r i n g   a , I n t e g e r   b ) {                 S y s t e m . o u t . p r i n t l n ( " C a t - > a b C a t , a = "   +   a   +   " b = "   +   b . t o S t r i n g ( ) ) ;         }         / /   S t r i n g     M a p         p u b l i c   C a t ( S t r i n g [ ]   a a , M a p   b b ) {                 S y s t e m . o u t . p r i n t l n ( " C a t - > a a b b C a t " ) ;                 S y s t e m . o u t . p r i n t l n ( " a a = "   +   A r r a y s . t o S t r i n g ( a a ) ) ;                 S y s t e m . o u t . p r i n t l n ( " b b = "   +   b b ) ;         } } t r y {         / /         C l a s s   a   =   C a t . c l a s s ;         / /         / / :         / / p u b l i c   C a t ( )         / /   n u l l           C o n s t r u c t o r   c o n s t r u c t o r 1   =   a . g e t C o n s t r u c t o r ( n u l l ) ;         / /         c o n s t r u c t o r 1 . n e w I n s t a n c e ( n u l l ) ; } c a t c h   ( E x c e p t i o n   e ) {         S y s t e m . o u t . p r i n t l n ( e ) ; } t r y {         / /         C l a s s   a   =   C a t . c l a s s ;         / /         / / :         / / p u b l i c   C a t ( S t r i n g   a )
~         / / p u b l i c   C a t ( S t r i n g   a )         / /   S t r i n g           / /   g e t C o n s t r u c t o r     S t r i n g . c l a s s         C o n s t r u c t o r   c o n s t r u c t o r 1   =   a . g e t C o n s t r u c t o r ( S t r i n g . c l a s s ) ;       / /       c o n s t r u c t o r 1 . n e w I n s t a n c e ( " t e s t v a l u e " ) ; } c a t c h   ( E x c e p t i o n   e ) {         S y s t e m . o u t . p r i n t l n ( e ) ; } t r y {         / /         C l a s s   a   =   C l a s s . f o r N a m e ( " o r g . x i a o p a n . t e s t . C a t " ) ;         / /         / /             / / p r i v a t e   C a t ( S t r i n g   a , I n t e g e r   b )         / /         / /       g e t D e c l a r e d C o n s t r u c t o r         / /   g e t D e c l a r e d C o n s t r u c t o r           C o n s t r u c t o r   c   =   a . g e t D e c l a r e d C o n s t r u c t o r ( S t r i n g . c l a s s ,   I n t e g e r . c l a s s ) ;         / /         c . s e t A c c e s s i b l e ( t r u e ) ;         / /         / /         c . n e w I n s t a n c e ( n e w   O b j e c t [ ] { " a b c d " , 1 2 3 4 5 6 } ) ; } c a t c h   ( E x c e p t i o n   e ) {         S y s t e m . o u t . p r i n t l n ( e ) ; }
  R e f e r e r     j d k 1 . 4   j d k 1 . 5   j d k 1 . 4 j d k 1 . 5 使 M a p M a p j a v a m a p M a p c . n e w I n s t a n c e ( n e w   O b j e c t [ ] { " a b c d " , 1 2 3 4 5 6 } ) ; / / n e w   O b j e c t [ ] { " a b c d " , 1 2 3 4 5 6 }   S t r i n g [ ]   a   =   { " a b c " ,   " d e f " } ; t r y {         / /
g e t D e c l a r e d x x x x         / /         C l a s s   a   =   ( n e w   C a t ( ) ) . g e t C l a s s ( ) ;         / /         / / p u b l i c   C a t ( S t r i n g [ ]   a a , M a p   b b )         / /   x x x . c l a s s   j a v a           C o n s t r u c t o r   c   =   a . g e t C o n s t r u c t o r ( S t r i n g [ ] . c l a s s ,   M a p . c l a s s ) ;         / / m a p         M a p   m   =   n e w   H a s h M a p ( ) ;         m . p u t ( " a _ k e y " , " a _ v a l u e " ) ;         / /   O b j e c t         / / n e w   S t r i n g [ ] { }           c . n e w I n s t a n c e ( n e w   O b j e c t [ ] { n e w   S t r i n g [ ] { " a " , " b " , " c " } ,   m } ) ; } c a t c h   ( E x c e p t i o n   e ) {         S y s t e m . o u t . p r i n t l n ( e ) ; } c l a s s   C a t {         p u b l i c   v o i d   a ( ) {                 S y s t e m . o u t . p r i n t l n ( " a   i n v o k e " ) ;         }         p u b l i c   S t r i n g [ ]   b ( S t r i n g [ ]   b ) {                 r e t u r n   b ;         }         p u b l i c   s t a t i c   v o i d   c ( ) {                 S y s t e m . o u t . p r i n t l n ( " c c c c c c " ) ;         } }
t r y {         / /         C l a s s   a   =   C l a s s . f o r N a m e ( " o r g . x i a o p a n . t e s t . C a t " ) ;         / / 使         / /         C a t   c a t   = ( C a t )   a . n e w I n s t a n c e ( ) ;         / /         / / p u b l i c   v o i d   a ( )         / /         / /         M e t h o d   m   =   a . g e t M e t h o d ( " a " ,   n u l l ) ;         / /     i n v o k e           / / i n v o k e         / /         m . i n v o k e ( c a t , n u l l ) ; } c a t c h   ( E x c e p t i o n   e ) {         S y s t e m . o u t . p r i n t l n ( e ) ; } t r y {         / /         C l a s s   a   =   C l a s s . f o r N a m e ( " o r g . x i a o p a n . t e s t . C a t " ) ;         / / 使         / /         C a t   c a t   = ( C a t )   a . n e w I n s t a n c e ( ) ;         / /         / / p u b l i c   S t r i n g [ ]   b ( S t r i n g [ ]   b )         / /         / /         M e t h o d   m   =   a . g e t M e t h o d ( " b " , S t r i n g [ ] . c l a s s ) ;         / /     i n v o k e           / /         / / 使   n e w   O b j e c t [ ] { }           / /         / /         / /         S t r i n g [ ]   s t r s   =   ( S t r i n g [ ] )   m . i n v o k e ( c a t ,   n e w   O b j e c t [ ] { n e w   S t r i n g [ ] { " s t r 1 " , " s t r 2 " , " s t r 3 " } } ) ;
  g e t M e t h o d     n u l l     n e w I n s t a n c e           / /         / / f o r   e a c h         / /   :           f o r   ( S t r i n g   s t r : s t r s ) {                 S y s t e m . o u t . p r i n t l n ( s t r ) ;         } } c a t c h   ( E x c e p t i o n   e ) {         S y s t e m . o u t . p r i n t l n ( e ) ; } t r y {         / /         C l a s s   a   =   C l a s s . f o r N a m e ( " o r g . x i a o p a n . t e s t . C a t " ) ;         / /         / / p u b l i c   s t a t i c   v o i d   c ( )         / /         / /         M e t h o d   m   =   a . g e t M e t h o d ( " c " ) ;         / / n u l l         m . i n v o k e ( n u l l ) ; } c a t c h   ( E x c e p t i o n   e ) {         S y s t e m . o u t . p r i n t l n ( e ) ; }
c l a s s   C a t {         p u b l i c   S t r i n g   n a m e   =   " m a o m a o " ;             / /   S t r i n g           p u b l i c   s t a t i c   B o o l e a n   s e x   =   t r u e ;       / /     S t r i n g           p r i v a t e   I n t e g e r   a g e   =   1 0 ;                       / /   I n t e g e r   } t r y {         / /         C l a s s   a   =   C l a s s . f o r N a m e ( " o r g . x i a o p a n . t e s t . C a t " ) ;         / / 使         C a t   c a t   =   ( C a t )   a . n e w I n s t a n c e ( ) ;         / /         / / p u b l i c   S t r i n g   n a m e   =   " m a o m a o " ;         / /         / /         F i e l d   m   =   a . g e t F i e l d ( " n a m e " ) ;         / /         / /         S t r i n g   n a m e   =   ( S t r i n g )   m . g e t ( c a t ) ;         S y s t e m . o u t . p r i n t l n ( n a m e ) ; } c a t c h   ( E x c e p t i o n   e ) {         S y s t e m . o u t . p r i n t l n ( e ) ; } t r y {         / /         C l a s s   a   =   C l a s s . f o r N a m e ( " o r g . x i a o p a n . t e s t . C a t " ) ;         / /         / / p u b l i c   s t a t i c   B o o l e a n   s e x   =   t r u e ;         / /
        / /         / /         F i e l d   m   =   a . g e t F i e l d ( " s e x " ) ;         / / , n u l l         B o o l e a n   b   =   ( B o o l e a n )   m . g e t ( n u l l ) ;         S y s t e m . o u t . p r i n t l n ( b ) ;         / /         m . s e t ( n u l l , f a l s e ) ;         b   =   ( B o o l e a n )   m . g e t ( n u l l ) ;         S y s t e m . o u t . p r i n t l n ( b ) ; } c a t c h   ( E x c e p t i o n   e ) {         S y s t e m . o u t . p r i n t l n ( e ) ; } t r y {         / /         C l a s s   a   =   C l a s s . f o r N a m e ( " o r g . x i a o p a n . t e s t . C a t " ) ;         / / 使         C a t   c a t   =   ( C a t )   a . n e w I n s t a n c e ( ) ;         / /         / / p r i v a t e   I n t e g e r   a g e   =   1 0 ;         / /         / /         F i e l d   m   =   a . g e t D e c l a r e d F i e l d ( " a g e " ) ;         / /         m . s e t A c c e s s i b l e ( t r u e ) ;         / /         I n t e g e r   a g e   =   ( I n t e g e r )   m . g e t ( c a t ) ;         / / S t r i n g   t o S t r i n g           S y s t e m . o u t . p r i n t l n ( a g e . t o S t r i n g ( ) ) ; } c a t c h   ( E x c e p t i o n   e ) {         S y s t e m . o u t . p r i n t l n ( e ) ; }
I D E A I D E A   M e t h o d R u n t i m e . g e t R u n t i m e . e x e c     R u n t i m e . g e t R u n t i m e . e x e c R u n t i m e . g e t R u n t i m e . e x e c   J a v a 使 P r o c e s s     I n p u t S t r e a m P r o c e s s   c m d   =   R u n t i m e . g e t R u n t i m e ( ) . e x e c ( w h o a m i ) b y t e [ ]   a   =   n e w   b y t e [ 1 0 2 4 ] ; P r o c e s s   c m d   =   R u n t i m e . g e t R u n t i m e ( ) . e x e c ( " w h o a m i " ) ; I n p u t S t r e a m   i n p u t   =   c m d . g e t I n p u t S t r e a m ( ) ; i n p u t . r e a d ( a ) ; S t r i n g   r e s   =   n e w   S t r i n g ( a ) ; S y s t e m . o u t . p r i n t l n ( r e s ) ;
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则