読者です 読者をやめる 読者になる 読者になる

きゅうり。

主にCTF関係のことを書いていく気がします

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???}