House of Orange

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

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

рдХреЛрдб

рд▓рдХреНрд╖реНрдп

  • malloc_printerr рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░реЗрдВ

рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ

  • рдКрдкрд░реА рдЪрдВрдХ рдХрд╛ рдЖрдХрд╛рд░ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░реЗрдВ

  • Libc рдФрд░ рд╣реАрдк рд▓реАрдХреНрд╕

рдкреГрд╖реНрдарднреВрдорд┐

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рдХреБрдЫ рдЖрд╡рд╢реНрдпрдХ рдкреГрд╖реНрдарднреВрдорд┐:

рдмрд╛рдд рдпрд╣ рд╣реИ, рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ libc рдореЗрдВ, рдЬрдм malloc_printerr рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рддреЛ рдпрд╣ _IO_list_all рдореЗрдВ рд╕рдВрдЧреНрд░рд╣рд┐рдд _IO_FILE рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреА рд╕реВрдЪреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рддрд╛ рдерд╛, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрд╕ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддрд╛ рдерд╛ред рдпрд╣ рд╣рдорд▓рд╛ рдПрдХ рдЬрд╛рд▓реА _IO_FILE рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рдПрдЧрд╛ рдЬрд┐рд╕реЗ рд╣рдо _IO_list_all рдореЗрдВ рд▓рд┐рдЦреЗрдВрдЧреЗ, рдФрд░ malloc_printerr рдХреЛ рдЪрд▓рд╛рдПрдЧрд╛ред рдлрд┐рд░ рдпрд╣ _IO_FILE рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рдЬрдВрдк рдЯреЗрдмрд▓ рдореЗрдВ рдЬреЛ рдХреЛрдИ рдкрддрд╛ рд╣реИ, рдЙрд╕реЗ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рд┐рдд рдХрд░реЗрдЧрд╛, рдФрд░ рд╣рдо рдХреЛрдб рдХреНрд░рд┐рдпрд╛рдиреНрд╡рд┐рдд рдХрд░реЗрдВрдЧреЗ

рд╣рдорд▓рд╛

рд╣рдорд▓рд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЕрдирд╕реЙрд░реНрдЯреЗрдб рдмрд┐рди рдореЗрдВ рдЯреЙрдк рдЪрдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реЗ mmap рдЖрд╡рдВрдЯрди рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ mmp_.mmap_threshold (рдбрд┐рдлрд╝реЙрд▓реНрдЯ 128K рд╣реИ) рд╕реЗ рдЫреЛрдЯрд╛ рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рд╢реАрд░реНрд╖ рдЪрдВрдХ рдХреЗ рдЖрдХрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде malloc рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рднреА рд╢реАрд░реНрд╖ рдЪрдВрдХ рдХрд╛ рдЖрдХрд╛рд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╢реАрд░реНрд╖ рдЪрдВрдХ + рдЗрд╕рдХрд╛ рдЖрдХрд╛рд░ рдкреЗрдЬ-рд╕рдВрд░реЗрдЦрд┐рдд рд╣реЛ рдФрд░ рдкрд┐рдЫрд▓рд╛_рдЗрдиреНрдпреВрдЬрд╝ рдмрд┐рдЯ рд╣рдореЗрд╢рд╛ рд╕реЗрдЯ рд░рд╣реЗред

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

рдкреБрд░рд╛рдирд╛ рд╢реАрд░реНрд╖ рдЪрдВрдХ рдЕрдм рдЕрдирд╕реЙрд░реНрдЯреЗрдб рдмрд┐рди рдореЗрдВ рд╣реИред рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЙрд╕рдореЗрдВ рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ (рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╡рд┐рдХрд▓реНрдкрдирд╛ рдЬрд┐рд╕рдиреЗ рдУрд╡рд░рдлрд╝реНрд▓реЛ рдХрд╛ рдХрд╛рд░рдг рднреА рдерд╛), рддреЛ рдЙрд╕рд╕реЗ libc рдкрддреЛрдВ рдХреЛ рд▓реАрдХ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдФрд░ _IO_list_all рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИред

рдЕрдирд╕реЙрд░реНрдЯреЗрдб рдмрд┐рди рд╣рдорд▓рд╛ рдПрдХ рдУрд╡рд░рдлрд╝реНрд▓реЛ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рдХреЗ topChunk->bk->fwd = _IO_list_all - 0x10 рд▓рд┐рдЦрдХрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рдПрдХ рдирдпрд╛ рдЪрдВрдХ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреБрд░рд╛рдирд╛ рд╢реАрд░реНрд╖ рдЪрдВрдХ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЕрдирд╕реЙрд░реНрдЯреЗрдб рдмрд┐рди рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдЗрдВрдЯрд░ _IO_list_all рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЕрдЧрд▓рд╛ рдХрджрдо рдкреБрд░рд╛рдиреЗ рд╢реАрд░реНрд╖ рдЪрдВрдХ рдХрд╛ рдЖрдХрд╛рд░ рдЫреЛрдЯрд╛ рдХрд░рдирд╛ рд╣реИ рддрд╛рдХрд┐ рдПрдХ рдЫреЛрдЯреЗ рдмрд┐рди рдореЗрдВ рдлрд┐рдЯ рд╣реЛ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрд╕рдХрд╛ рдЖрдХрд╛рд░ 0x61 рд╕реЗрдЯ рдХрд░рдирд╛ред рдЗрд╕рдХреЗ рджреЛ рдЙрджреНрджреЗрд╢реНрдп рд╣реИрдВ:

  1. рдЫреЛрдЯреЗ рдмрд┐рди 4 рдореЗрдВ рдЗрдиреНрд╕рд░реНрд╢рди: рдЬрдм malloc рдЕрдирд╕реЙрд░реНрдЯреЗрдб рдмрд┐рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдХреИрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдЪрдВрдХ рдХреЛ рджреЗрдЦрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЗрд╕реЗ рдЫреЛрдЯреЗ рдмрд┐рди 4 рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛ рдЬрд┐рд╕рдХрд╛ рдХрд╛рд░рдг рдЗрд╕рдХреЗ рдЫреЛрдЯреЗ рдЖрдХрд╛рд░ рдХреЗ рдХрд╛рд░рдг рд╣реЛрдЧрд╛ред рдпрд╣ рдЪрдВрдХ рдЫреЛрдЯреЗ рдмрд┐рди 4 рдХреА рд╕реВрдЪреА рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ _IO_list_all рдХреЗ рдЪрдВрдХ рдХреЗ FD рдкреЙрдЗрдВрдЯрд░ рдХрд╛ рд╕реНрдерд╛рди рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдЕрдирд╕реЙрд░реНрдЯреЗрдб рдмрд┐рди рд╣рдорд▓реЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ _IO_list_all рдореЗрдВ рдПрдХ рдХреНрд▓реЛрдЬ рдкрддрд╛ рд▓рд┐рдЦрд╛ рдерд╛ред

  2. рдореИрд▓реЛрдХ рдЪреЗрдХ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдирд╛: рдпрд╣ рдЪрдВрдХ рдЖрдХрд╛рд░ рдорд╛рдирд┐рдкреБрд▓реЗрд╢рди malloc рдХреЛ рдЖрдВрддрд░рд┐рдХ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░рдг рдмрдирд╛рдПрдЧрд╛ред рдЬрдм рдпрд╣ рдЭреВрдареА рдлреЙрд░рд╡рд░реНрдб рдЪрдВрдХ рдХрд╛ рдЖрдХрд╛рд░ рдЬрд╛рдВрдЪрддрд╛ рд╣реИ, рдЬреЛ рд╢реВрдиреНрдп рд╣реЛрдЧрд╛, рддреЛ рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░реЗрдЧрд╛ рдФрд░ malloc_printerr рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧрд╛ред

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

рддрдХрдиреАрдХ рдХреЗ рд╢реЗрд╖ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рд╕рд╛рд░рд╛рдВрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

  • рдкреБрд░рд╛рдиреЗ рд╢реАрд░реНрд╖ рдЪрдВрдХ рдХреЛ рдЫреЛрдЯрд╛ рдХрд░реЗрдВ: рдкреБрд░рд╛рдиреЗ рд╢реАрд░реНрд╖ рдЪрдВрдХ рдХрд╛ рдЖрдХрд╛рд░ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЗрд╕реЗ рдЫреЛрдЯреЗ рдмрд┐рди рдореЗрдВ рдлрд┐рдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред


рд╕рдВрджрд░реНрдн

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

Last updated