Heap Overflow

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

рдореВрд▓рднреВрдд рдЬрд╛рдирдХрд╛рд░реА

рд╣реАрдк рдУрд╡рд░рдлреНрд▓реЛ рдПрдХ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдХреА рддрд░рд╣ рд╣реИ рд▓реЗрдХрд┐рди рд╣реАрдк рдореЗрдВред рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣реАрдк рдореЗрдВ рдХреБрдЫ рд╕реНрдерд╛рди рдЖрд░рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рддрд╛рдХрд┐ рдХреБрдЫ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдФрд░ рд╕реНрдЯреЛрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдбреЗрдЯрд╛ рдЖрд░рдХреНрд╖рд┐рдд рд╕реНрдерд╛рди рд╕реЗ рдЕрдзрд┐рдХ рдерд╛ред

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

рдУрд╡рд░рдлреНрд▓реЛ рдСрдлрд╕реЗрдЯреНрд╕ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдмрдирд╛рдо рд╣реАрдк рдУрд╡рд░рдлреНрд▓реЛ

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

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

рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рддрдХрдиреАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реАрдк рдЧреНрд░реВрдорд┐рдВрдЧ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреЛрд╕реНрдЯ рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЬрдм iOS рдХрд░реНрдирд▓ рдореЗрдВ рдХрд┐рд╕реА рдЬреЛрди рдХреЛ рдореЗрдореЛрд░реА рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдХреА рдХрдореА рд╣реЛрддреА рд╣реИ, рддреЛ рдЗрд╕реЗ рдПрдХ рдХрд░реНрдирд▓ рдкреЗрдЬ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдкреЗрдЬ рдХреЛ рдЙрдореНрдореАрдж рдХреА рдЧрдИ рдЖрдХрд╛рд░реЛрдВ рдХреЗ рдЪрдВрдХреНрд╕ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдХреНрд░рдо рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ (iOS рд╕рдВрд╕реНрдХрд░рдг 9.2 рддрдХ, рдлрд┐рд░ рдЗрди рдЪрдВрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрди рд╣рдорд▓реЛрдВ рдХреЗ рджреБрд░реБрдкрдпреЛрдЧ рдХреЛ рдХрдард┐рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рддрд░реАрдХреЗ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред

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

рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдЖрдХрд╛рд░ рдХреЗ рд╡рд╕реНрддреБ рд╕реЗ рдЗрд╕ рднрд░рд╛рдИ рдХреЛ рдордЬрдмреВрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ iOS рдорд╢ рдкреЛрд░реНрдЯ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЖрдЙрдЯ-рдСрдл-рд▓рд╛рдЗрди рдЖрд╡рдВрдЯрди рдПрдХ рдЖрджрд░реНрд╢ рдЙрдореНрдореАрджрд╡рд╛рд░ рд╣реИред рд╕рдВрджреЗрд╢ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдмрдирд╛рдХрд░, kalloc рдЖрд╡рдВрдЯрди рдХрд╛ рдЖрдХрд╛рд░ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЬрдм рд╕рдВрдмрдВрдзрд┐рдд рдорд╢ рдкреЛрд░реНрдЯ рдирд╖реНрдЯ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╡рдВрдЯрди рддреБрд░рдВрдд kfree рдореЗрдВ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдЧрд╛ред

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

рдЙрджрд╛рд╣рд░рдг libc

рдЗрд╕ рдкреГрд╖реНрда рдореЗрдВ рдПрдХ рдореМрд▓рд┐рдХ рд╣реАрдк рдУрд╡рд░рдлреНрд▓реЛ рдЕрдиреБрдХрд░рдг рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд▓реЗ рдЪрдВрдХ рдХреЗ рдкрд┐рдЫрд▓реЗ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдмрд┐рдЯ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рдХреЗ рдФрд░ рдкрд┐рдЫрд▓реЗ рдЖрдХрд╛рд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдХрд╣рд╛рдБ рдкрд░ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рдХреЗ рдПрдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЪрдВрдХ рд╕рдореЗрдЯ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╣ рдЕрдирдЙрд╕реЗрдб рдорд╣рд╕реВрд╕ рдХрд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП) рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рд╕реЗ рдПрдХ рдЕрд▓рдЧ рдкреЙрдЗрдВрдЯрд░ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдбреЗрдЯрд╛ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

[**рдкреНрд░реЛрдЯ

python3 -c 'print("/"*0x400+"/bin/ls\x00")' > hax.txt

рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдг

  • рд╣рдо рдПрдХ рдЗрдВрдЯреАрдЬрд░ рдУрд╡рд░рдлреНрд▓реЛ рд╡рд▓реНрдирд░реЗрдмрд┐рд▓рд┐рдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╣рдо рд╣реАрдк рдУрд╡рд░рдлреНрд▓реЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХреЗрдВред

  • рд╣рдо рдУрд╡рд░рдлреНрд▓реЛрд╡реНрдб рдЪрдВрдХ рдХреЗ рдПрдХ struct рдХреЗ рдЕрдВрджрд░ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдХрд░рдкреНрдЯ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╣рдо system рдЬреИрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕реЗрдЯ рдХрд░ рд╕рдХреЗрдВ рдФрд░ рдХреЛрдб рдПрдХреНрдЭреАрдХреНрдпреВрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХреЗрдВред

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

Last updated