0CTF 2017 writeup その2
その他writeup
0CTF 2017 writeup その3 - きゅうり。 (EasiestPrintf)
0CTF 2017 writeup - きゅうり。 (integrity, oneTimePad)
今更ですが、本番中には解けず、後から解いたもののwriteupシリーズです。
char
自明なbuffer over readがあり、offset=32で簡単にEIPが奪える。ただし入力はprintableなもの(asciiで0x20〜0x7e)しか受け付けないので、その範囲内でROPを組む必要がある。
libcが固定アドレスでprintableなアドレスに読み込まれるので、その中の使えるgadgetを組み合わせて頑張る。rp++の結果からprintableなものだけ抽出するスクリプトを適当に書いて、あとは泥臭く組み立てていっただけなので特に説明はないです。
ecxは{"/bin/sh",NULL}ってずっと思ってたものの、特になにもしなくてもシェルとれた。知見。
flag{Asc11_ea3y_d0_1t???}