WWW2Exec - GOT/PLT

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

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

GOT: рдЧреНрд▓реЛрдмрд▓ рдСрдлрд╕реЗрдЯ рдЯреЗрдмрд▓

рдЧреНрд▓реЛрдмрд▓ рдСрдлрд╕реЗрдЯ рдЯреЗрдмрд▓ (GOT) рдПрдХ рддрдВрддреНрд░ рд╣реИ рдЬреЛ рдбрд╛рдпрдирд╛рдорд┐рдХ рд░реВрдк рд╕реЗ рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рдмрд╛рдЗрдирд░реА рдореЗрдВ рдмрд╛рд╣рд░реА рдлрд╝рдВрдХреНрд╢рдиреЛрдВ рдХреЗ рдкрддреЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдпреЗ рдкрддреЗ рд░рдирдЯрд╛рдЗрдо рддрдХ рдирд╣реАрдВ рдкрддреЗ рд╣реЛрддреЗ (рдбрд╛рдпрдирд╛рдорд┐рдХ рд▓рд┐рдВрдХрд┐рдВрдЧ рдХреЗ рдХрд╛рд░рдг), GOT рдПрдХ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЗрди рдмрд╛рд╣рд░реА рдкреНрд░рддреАрдХреЛрдВ рдХреЗ рдкрддреЛрдВ рдХреЛ рдбрд╛рдпрдирд╛рдорд┐рдХ рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд░реАрдХрд╛ред

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

PLT: рдкреНрд░реЛрд╕реАрдЬрд░ рд▓рд┐рдВрдХреЗрдЬ рдЯреЗрдмрд▓

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

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

рдирд┐рд╖реНрдкрд╛рджрди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

GOT рдХреА рдЬрд╛рдБрдЪ

objdump -s -j .got ./exec рдХреЗ рд╕рд╛рде GOT рдЯреЗрдмрд▓ рдХрд╛ рдкрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

GEF рдореЗрдВ рдПрдХреНрд╕реАрдХреНрдпреВрдЯреЗрдмрд▓ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ GOT рдореЗрдВ рдХреМрди рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВ: gefтЮд x/20x 0xADDR_GOT

GEF рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рдбреАрдмрдЧрд┐рдВрдЧ рд╕рддреНрд░ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ got рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреЙрдЯ рдЯреЗрдмрд▓ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:

GOT2Exec

рдПрдХ рдмрд╛рдЗрдирд░реА рдореЗрдВ GOT рдореЗрдВ рдлрд╝рдВрдХреНрд╢рдиреЛрдВ рдХреЗ рдкрддреЗ рдпрд╛ PLT **рдЦрдВрдб рдХреЗ рдкрддреЗ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рдкрддрд╛ рд▓реЛрдб рдХрд░реЗрдЧрд╛ред рдЗрд╕ рдЕрд░реНрдмрд┐рдЯреНрд░реЗрд░реА рд░рд╛рдЗрдЯ рдХрд╛ рд▓рдХреНрд╖реНрдп рд╣реИ рдХрд┐ рдПрдХ GOT рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдирд╛ рд╣реИ рдЬреЛ рдмрд╛рдж рдореЗрдВ system рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрддреЗ рдХреЗ рд╕рд╛рдеред

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

рдпрджрд┐ system рдмрд╛рдЗрдирд░реА рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рд┐рд╕реНрдЯрдо рдлрд╝рдВрдХреНрд╢рди PLT рдореЗрдВ рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдирд╣реАрдВ рд╣реЛрдЧреАред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ system рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрддрд╛ рд▓реАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдФрд░ рдлрд┐рд░ GOT рдХреЛ рдЗрд╕ рдкрддреЗ рдкрд░ рдкреЙрдЗрдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЖрдк objdump -j .plt -d ./vuln_binary рдХреЗ рд╕рд╛рде PLT рдкрддреЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

libc GOT рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ

libc рдХрд╛ GOT рдЖрдо рддреМрд░ рдкрд░ рдЖрдВрд╢рд┐рдХ RELRO рдХреЗ рд╕рд╛рде рдХреЙрдореНрдкрд╛рдЗрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ рдПрдХ рдЕрдЪреНрдЫрд╛ рд▓рдХреНрд╖реНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ (ASLR)ред

libc рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдЕрдиреНрдп рдЖрдВрддрд░рд┐рдХ рдлрд╝рдВрдХреНрд╢рдиреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВрдЧреЗ рдЬрд┐рдирдХрд╛ GOT рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рдЗрд╕ рддрдХрдиреАрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдБ рдорд┐рд▓реЗрдЧреАред

Free2system

рд╣реАрдк рдЙрддреНрдкреАрдбрди CTFs рдореЗрдВ рдЖрдо рддреМрд░ рдкрд░ рдЪрдВрдХ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдХрднреА-рдХрднреА GOT рдЯреЗрдмрд▓ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реЛрддреА рд╣реИред рдпрджрд┐ рдПрдХ рдЧреИрдЬреЗрдЯ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ рддреЛ free GOT рдкрддрд╛ рдХреЛ system рдХреЛ рдкреЙрдЗрдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдЯреНрд░рд┐рдХ рд╣реИ рдФрд░ рдЪрдВрдХ рдореЗрдВ "/bin/sh" рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдПред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЬрдм рдпрд╣ рдЪрдВрдХ рдореБрдХреНрдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ system("/bin/sh") рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдЧрд╛ред

Strlen2system

рдПрдХ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рддрдХрдиреАрдХ рд╣реИ рдХрд┐ strlen GOT рдкрддрд╛ рдХреЛ system рдХреЛ рдкреЙрдЗрдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ "/bin/sh" рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдФрд░ рдПрдХ рд╢реИрд▓реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реИрд▓реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдпрджрд┐ puts рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ strlen GOT рдкрддрд╛ рдХреЛ system рдХреЛ рдкреЙрдЗрдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░

рд╕реБрд░рдХреНрд╖рд╛

рдкреВрд░реНрдг RELRO рд╕реБрд░рдХреНрд╖рд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рддрдХрдиреАрдХ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдмрд╛рдЗрдирд░реА рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рд╕рднреА рдлрд╝рдВрдХреНрд╢рдиреЛрдВ рдХреЗ рдкрддреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдХреЗ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рдж GOT рдЯреЗрдмрд▓ рдХреЛ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рддреЗ рд╣реИрдВ:

Relro

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

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

Last updated