Skip to content
This repository has been archived by the owner on May 24, 2023. It is now read-only.

Latest commit

 

History

History
11 lines (7 loc) · 1.17 KB

writeup.md

File metadata and controls

11 lines (7 loc) · 1.17 KB

よくあるヒープのメモサービス系。特徴は最新のglibcが使われていること。 最新のmallocの実装では、PROTECT_PTRというマクロに依って、アドレスを12bitずらした部分(つまりASLRで使われている乱数)を使い、fd,bkなどのメンバーにxorをかけています。 本問題ではUAFも二重解放もヒープオーバーフローもあるのでそれだけ気をつけてexploitします。

まず2つ領域を確保し開放します。領域のサイズは0x100なので、tcacheなどを気にする必要はありません。 次にUAFを使い確保される領域を操作します。スタックのアドレスは最初に入手していて、またヒープのアドレスも入手できるため、任意の領域を取得するための値を生成できます。それをfdメンバーに書き込みもう一度確保をすることで、スタック領域へのポインターをmallocで取ってこれます。 最後に、edit関数内でROPをします。StackCanaryはeditには存在していないため、確保する場所に気をつければ簡単にROPできます。 シェルが取れます。終わり