Unsorted Bin Attack

рд╣реИрдХрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ

рдореМрд▓рд┐рдХ рдЬрд╛рдирдХрд╛рд░реА

рдЕрдирд╕реЙрд░реНрдЯреЗрдб рд╕реВрдЪрд┐рдпрд╛рдБ рдЕрдирд╕реЙрд░реНрдЯреЗрдб_рдЪрдВрдХреНрд╕ (av) рдХреЗ рдкрддреЗ рдХреЛ рдЪрдВрдХ рдХреЗ bk рдкрддреЗ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд░рдЦрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдЕрдирд╕реЙрд░реНрдЯреЗрдб рдмрд┐рди рдХреЗ рднреАрддрд░ рдПрдХ рдЪрдВрдХ рдореЗрдВ bk рдкреНрд╡рд╛рдЗрдВрдЯрд░ рдХрд╛ рдкрддрд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдХрд┐рд╕реА рднреА рдкрддреЗ рдореЗрдВ рдЙрд╕ рдкрддреЗ рдХреЛ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдПрдХ Glibc рдкрддрд╛ рд▓реАрдХ рдХрд░рдиреЗ рдпрд╛ рдХреБрдЫ рд░рдХреНрд╖рд╛ рдХреЛ рдЫрд▓рдиреЗ рдореЗрдВ рд╕рд╣рд╛рдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП, рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдпрд╣ рд╣рдорд▓рд╛ рдПрдХ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрд┐рд╕реА рднреА рдкрддреЗ рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдПрдХ рдкрддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рд╣реАрдк рдкрддрд╛ рдпрд╛ рдПрдХ Glibc рдкрддрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд▓рдХреНрд╖реНрдп global_max_fast рд╣реИ рддрд╛рдХрд┐ рдмрдбрд╝реЗ рдЖрдХрд╛рд░ рдХреЗ рдлрд╛рд╕реНрдЯ рдмрд┐рди рдмрд┐рдиреНрд╕ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реЛ (рдФрд░ рдПрдХ рдЕрдирд╕реЙрд░реНрдЯреЗрдб рдмрд┐рди рд╣рдорд▓реЗ рд╕реЗ рдПрдХ рдлрд╛рд╕реНрдЯ рдмрд┐рди рд╣рдорд▓реЗ рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ)ред

https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/unsorted_bin_attack/#principle рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдкрд░ рдПрдХ рдирдЬрд░ рдбрд╛рд▓рдиреЗ рдФрд░ 0x400 рдФрд░ 0x500 рдХреА рдмрдЬрд╛рдп 0x4000 рдФрд░ 0x5000 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ (Tcache рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП) рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдЬрдХрд▓ рддреНрд░реБрдЯрд┐ malloc(): unsorted double linked list corrupted рдЯреНрд░рд┐рдЧрд░ рд╣реЛрддреА рд╣реИред

рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рдЕрдирд╕реЙрд░реНрдЯреЗрдб рдмрд┐рди рд╣рдорд▓реЗ рдХреЛ рдЕрдм (рдЕрдиреНрдп рдЬрд╛рдВрдЪреЛрдВ рдХреЗ рдмреАрдЪ) рдбрдмрд▓ рд▓рд┐рдВрдХреНрдб рд╕реВрдЪреА рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдЫрд▓рд╛рд╡рд╛ рджрд┐рдЦрд╛рдП victim->bk->fd == victim рдпрд╛ рдирд╣реАрдВ victim->fd == av (arena), рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдореЗрдВ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдкрддрд╛ рдЬрд┐рд╕ рдкрддреЗ рдкрд░ рд╣рдо рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрд╕рдХреЗ fd рд╕реНрдерд╛рди рдореЗрдВ рдирдХрд▓реА рдЪрдВрдХ рдХрд╛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдирдХрд▓реА рдЪрдВрдХ fd рдПрд░рд┐рдпрдирд╛ рдХреА рдУрд░ рдкреНрд╡рд╛рдЗрдВрдЯ рдХрд░ рд░рд╣рд╛ рд╣реЛред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рд╣рдорд▓рд╛ рдЕрдирд╕реЙрд░реНрдЯреЗрдб рдмрд┐рди рдХреЛ рдХреНрд╖рддрд┐ рдкрд╣реБрдВрдЪрд╛рддрд╛ рд╣реИ (рдЗрд╕рд▓рд┐рдП рдЫреЛрдЯреЗ рдФрд░ рдмрдбрд╝реЗ рднреА)ред рдЗрд╕рд▓рд┐рдП рд╣рдо рдЕрдм рдХреЗрд╡рд▓ рдлрд╛рд╕реНрдЯ рдмрд┐рди рд╕реЗ рдЖрд╡рдВрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдПрдХ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЕрдиреНрдп рдЖрд╡рдВрдЯрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдХреНрд░реИрд╢ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ), рдФрд░ рдЗрд╕реЗ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдПрдХ рд╣реА рдЖрдХрд╛рд░ рдХрд╛ рдЖрд╡рдВрдЯрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдпрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ global_max_fast рдХреЛ рдЕрдзрд┐рдХ рд▓рд┐рдЦрдирд╛ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рд╣рд╛рдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рднрд░реЛрд╕рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдлрд╛рд╕реНрдЯ рдмрд┐рди рд╕рднреА рдЕрдиреНрдп рдЖрд╡рдВрдЯрди рдХрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдЧрд╛ рдЬрдм рддрдХ рдЙрддреНрдкрд╛рджрди рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдЧрд╛рдпрд┐рдирд╛рдЯрдХреНрд╕реЗрдбреЛ рдХреЗ рдХреЛрдб рд╕реЗ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫреЗ рд╕реЗ рд╕рдордЭрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрджрд┐ рдЖрдк mallocs рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ Tcache рдореЗрдВ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддреЗ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рддреНрд░реБрдЯрд┐ рдЖрддреА рд╣реИ рдЬреЛ рдЗрд╕ рддрдХрдиреАрдХ рдХреЛ рд░реЛрдХрддреА рд╣реИ: malloc(): unsorted double linked list corrupted

рдЕрдирд╕реЙрд░реНрдЯреЗрдб рдмрд┐рди рдЗрдирдлреЛрд▓реАрдХ рд╣рдорд▓рд╛

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рдореМрд▓рд┐рдХ рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИред рдЕрдирд╕реЙрд░реНрдЯреЗрдб рдмрд┐рди рдореЗрдВ рдЪрдВрдХреНрд╕ рдХреЗ рдкреЙрдЗрдВрдЯрд░ рд╣реЛрддреЗ рд╣реИрдВред рдЕрдирд╕реЙрд░реНрдЯреЗрдб рдмрд┐рди рдореЗрдВ рдкрд╣рд▓рд╛ рдЪрдВрдХ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ fd рдФрд░ bk рд▓рд┐рдВрдХреНрд╕ рдореБрдЦреНрдп рдПрд░рд┐рдпрдирд╛ (Glibc) рдХреЗ рдПрдХ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдкреЙрдЗрдВрдЯ рдХрд░реЗрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдПрдХ рдЪрдВрдХ рдХреЛ рдЕрдирд╕реЙрд░реНрдЯреЗрдб рдмрд┐рди рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рдж рдореБрдХреНрдд рдХрд░реЗрдВ) рдпрд╛ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдмрд┐рдирд╛ рдХрдо рд╕реЗ рдХрдо 1 рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд┐рдП рддреЛ рдлрд┐рд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ Glibc рдЗрдирдлреЛ рд▓реАрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕ рд▓рд┐рдЦрди рдореЗрдВ рдПрдХ рд╣рдорд▓рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдореЗрдВ 4 рдЪрдВрдХреНрд╕ рд╕рдВрд░рдЪрдирд╛ (A, B, C рдФрд░ D - D рдХреЗрд╡рд▓ рд╢реАрд░реНрд╖ рдЪрдВрдХ рдХреЗ рд╕рд╛рде рд╕рдореЗрдХрди рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП) рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рддрд╛рдХрд┐ B рдореЗрдВ рдПрдХ рдирд▓ рдмрд╛рдЗрдЯ рдУрд╡рд░рдлреНрд▓реЛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рддрд╛рдХрд┐ C рдЗрд╕рдХрд╛ рд╕рдВрдХреЗрдд рджреЗ рдХрд┐ B рдЕрдкреНрд░рдпреБрдХреНрдд рдерд╛ред рд╕рд╛рде рд╣реА, B рдореЗрдВ prev_size рдбреЗрдЯрд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рддрд╛рдХрд┐ рдЖрдХрд╛рд░ B рдХрд╛ рди рд╣реЛрдХрд░ A+B рд╣реЛред рдлрд┐рд░ C рдХреЛ рдореБрдХреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛, рдФрд░ A+B рдХреЗ рд╕рд╛рде рд╕рдореЗрдХрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ (рд▓реЗрдХрд┐рди B рдЕрднреА рднреА рдЙрдкрдпреЛрдЧ рдореЗрдВ рдерд╛)ред A рдХреЗ рдЖрдХрд╛рд░ рдХрд╛ рдПрдХ рдирдпрд╛ рдЪрдВрдХ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдлрд┐рд░ рд▓рд┐рдмреНрд╕реА рд▓реАрдХ рдкрддреЗ B рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ рдЬрд╣рд╛рдВ рд╕реЗ рд╡реЗ рд▓реАрдХ рд╣реЛ рдЧрдПред

рд╕рдВрджрд░реНрдн рдФрд░ рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдг

  • рд▓рдХреНрд╖реНрдп рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреЛ 4869 рд╕реЗ рдЕрдзрд┐рдХ рдорд╛рди рд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рдирд╛ рд╣реИ рддрд╛рдХрд┐ рдзреНрд╡рдЬ рдорд┐рд▓ рд╕рдХреЗ рдФрд░ PIE рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИред

  • рд╡рд┐рдЪрд╛рд░рдгреАрдп рдЖрдХрд╛рд░реЛрдВ рдХреЗ рдЪрдВрдХ рдЙрддреНрдкрдиреНрди рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдЗрдЪреНрдЫрд┐рдд рдЖрдХрд╛рд░ рдХреЗ рд╣реАрдк рдУрд╡рд░рдлреНрд▓реЛ рд╣реИред

  • рд╣рдорд▓рд╛ рддреАрди рдЪрдВрдХ рдмрдирд╛рдХрд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ: рдЪрдВрдХ0 рдУрд╡рд░рдлреНрд▓реЛ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЪрдВрдХ1 рдУрд╡рд░рдлреНрд▓реЛ рдХреЗ рд▓рд┐рдП рдФрд░ рдЪрдВрдХ2 рддрд╛рдХрд┐ рд╢реАрд░реНрд╖ рдЪрдВрдХ рдкрд┐рдЫрд▓реЗ рд╡рд╛рд▓реЛрдВ рдХреЛ рд╕рдореЗрдХрд┐рдд рди рдХрд░реЗрдВред

  • рдлрд┐рд░, рдЪрдВрдХ1 рдХреЛ рдореБрдХреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдЪрдВрдХ0 рдХреЛ рдУрд╡рд░рдлреНрд▓реЛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рддрд╛рдХрд┐ рдЪрдВрдХ1 рдХрд╛ bk рдкреЙрдЗрдВрдЯрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдкреЙрдЗрдВрдЯ рдХрд░реЗ: bk = magic - 0x10

  • рдлрд┐рд░, рдЪрдВрдХ3 рдХреЛ рдЪрдВрдХ1 рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЕрдирд╕реЙрд░реНрдЯреЗрдб рдмрд┐рди рд╣рдорд▓рд╛ рдЯреНрд░рд┐рдЧрд░ рдХрд░реЗрдЧрд╛ рдФрд░ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреЗ рдорд╛рди рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рдзреНрд╡рдЬ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред

  • [https://guyinatuxedo.github.io/31-unsortedbin_attack/0ctf16_zerostorage/index.html](https://guyinatuxedo.github.io/31-unsorted 0x7ff1e9e6075f: 0x0000000000000000 0x0000000000000000 0x7ff1e9e6076f <list_all_lock+15>: 0x0000000000000000 0x0000000000000000 0x7ff1e9e6077f <_IO_stdfile_2_lock+15>: 0x0000000000000000 0x0000000000000000

  • рдпрджрд┐ рд╣рдо рдЗрд╕ рд╕реНрдерд╛рди рдкрд░ рдЖрдХрд╛рд░ 0x200 рдХрд╛ рдПрдХ рддреЗрдЬ рдЪрдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ рдЬреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рд╣реЛрдЧрд╛

  • рдЗрд╕рдХреЗ рд▓рд┐рдП, рдЖрдХрд╛рд░ 0xfc рдХрд╛ рдПрдХ рдирдпрд╛ рдЪрдВрдХ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдорд░реНрдЬрд╝ рдХрд╛рд░реНрдп рдХреЛ рдЙрд╕ рдкреЙрдЗрдВрдЯрд░ рдХреЗ рд╕рд╛рде рджреЛ рдмрд╛рд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕ рддрд░рд╣ рд╣рдо рддреЗрдЬ рдмрд┐рди рдореЗрдВ рдЖрдХрд╛рд░ 0xfc*2 = 0x1f8 рдХреЗ рдПрдХ рдЫреБрдЯреНрдЯреА рд╣реБрдИ рдЪрдВрдХ рдХрд╛ рдкреЙрдЗрдВрдЯрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред

  • рдлрд┐рд░, рдЗрд╕ рдЪрдВрдХ рдореЗрдВ рд╕рдВрдкрд╛рджрди рдХрд╛рд░реНрдп рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЗрд╕ рддреЗрдЬ рдмрд┐рди рдХрд╛ fd рдкрддрд╛ рдкрд┐рдЫрд▓реЗ __free_hook рдлрд╝рдВрдХреНрд╢рди рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░реЗред

  • рдлрд┐рд░, рдЖрдХрд╛рд░ 0x1f8 рдХреЗ рдПрдХ рдЪрдВрдХ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рддреЗрдЬ рдмрд┐рди рд╕реЗ рдкрд┐рдЫрд▓рд╛ рдЕрдлрд╝рд╛рд▓ рдЪрдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рддрд╛рдХрд┐ рдПрдХ рдФрд░ рдЪрдВрдХ рдЖрдХрд╛рд░ 0x1f8 рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдЬрд┐рд╕рд╕реЗ __free_hook рдореЗрдВ рдПрдХ рддреЗрдЬ рдмрд┐рди рдЪрдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдЬрд┐рд╕реЗ system рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрддрд╛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

  • рдФрд░ рдЕрдВрдд рдореЗрдВ /bin/sh\x00 рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдЪрдВрдХ рдореБрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдЯрд╛рдиреЗ рдХрд╛рд░реНрдп рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ __free_hook рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ /bin/sh\x00 рдХреЗ рд╕рд╛рде рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛ рд╣реИред

  • рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдПрдХ 1B рдУрд╡рд░рдлрд╝реНрд▓реЛ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЬреЛ рдЕрд╕рдВрдЧрдард┐рдд рдмрд┐рди рдореЗрдВ рдЪрдВрдХреЛрдВ рдХреЛ рд╕рдореЗрдХрд┐рдд рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ рдПрдХ рд▓рд┐рдмреНрд╕ рдЗрдиреНрдлреЛрд▓реАрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ рдПрдХ рд╡рди рдЧреИрдЬреЗрдЯ рдкрддрд╛ рдХреЗ рд╕рд╛рде рдореИрд▓реЛрдХ рд╣реБрдХ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддреЗрдЬ рдмрд┐рди рд╣рдорд▓рд╛ рд╣реИ

  • рд╣рдо рдХреЗрд╡рд▓ 0x100 рд╕реЗ рдЕрдзрд┐рдХ рдЖрдХрд╛рд░ рдХреЗ рдЪрдВрдХ рдЖрд╡рдВрдЯрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

  • рдПрдХ рдЕрд╕рдВрдЧрдард┐рдд рдмрд┐рди рд╣рдорд▓рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ global_max_fast рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░реЗрдВ (ASLR рдХреЗ рдХрд╛рд░рдг 1/16 рдмрд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ 12 рдмрд┐рдЯ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ 16 рдмрд┐рдЯ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред

  • рддреЗрдЬ рдмрд┐рди рд╣рдорд▓рд╛ рдПрдХ рдЧреНрд▓реЛрдмрд▓ рдПрд░реЗ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╣ рдПрдХ рдЕрд░реНрдмрд┐рдЯреНрд░реЗ рд░реАрдб/рд░рд╛рдЗрдЯ рдкреНрд░рд╛рдЗрдорд┐рдЯрд┐рд╡ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╣рдо GOT рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХрд┐рд╕реА рдХрд╛рд░реНрдп рдХреЛ system рдкрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╣реИрдХрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ

Last updated