2018-01-01から1年間の記事一覧
はじめに 一人writeup advent calendarの7日目です。 1日1問分のwriteupを目標に頑張っていきます。 7日目の問題は、Midnight Sun CTF Finalsで出題された「Flitbip」。 初めての人にオススメです。 カーネルの情報 (セキュリティ機構など) カーネルのバージ…
はじめに これは CTF Advent Calendar 2018 - Adventar の8日目の記事です。 7日目は、@bata_24 さんの 「WCTF 2018 - klist Writeup - HackMD 」でした。 この記事は、タイトル通りに私が個人的に「よく使うなぁ・他のwriteupでよく見るなぁ」と感じたテク…
はじめに 一人writeup advent calendarの6日目です。 1日1問分のwriteupを目標に頑張っていきます。 6日目の問題は、0CTF 2017 Finalsで出題された「cred_jar」。 race conditionを起点としたkernel exploit問題で初めての人にオススメです。 カーネルの情報…
はじめに 一人writeup advent calendarの5日目です。1日1問分のwriteupを目標に頑張っていきます。 5日目の問題は、CODE GRAY CTFで出題された「sured」。race conditionを使った問題で初めての人にオススメです。 初期調査 セキュリティ機構は以下の通りで…
はじめに 一人writeup advent calendarの4日目です。1日1問分のwriteupを目標に頑張っていきます。 4日目の問題は、Sharif CTF 2018で出題された「kdb」。kUAF (kernel Use After Free) を起点としたkernel exploit問題で初めての人にオススメです。 カーネ…
はじめに 一人writeup advent calendarの3日目です。1日1問分のwriteupを目標に頑張っていきます。 3日目の問題は、NCSTISC CTF 2018で出題された「babydriver」。kUAF (kernel Use After Free) を起点としたkernel exploit問題で初めての人にオススメです。…
はじめに 一人writeup advent calendarの2日目です。 1日1問分のwriteupを目標に頑張っていきます。 2日目の問題は、SEC-T CTF 2018で出題された「gh0st」。 out-of-boundsを起点としたkernel exploit問題で初めての人にオススメです。 カーネルの情報 (セキ…
はじめに 一人writeup advent calendarの1日目です。 1日1問分のwriteupを目標に頑張っていきます。 1日目の問題は、Blaze CTF 2018で出題された「blazeme」。 stack overflowを起点としたkernel exploit問題で初めての人にオススメです。 カーネルの情報 (…
はじめに 私は、CTFを初めて3年目ぐらいの、まだまだ成長期真っ只中の初心者だ。 だが最近全然実力が伸びない、というか成長を感じることができなくなった。 事実実力が伸び悩んでいるのかもしれないが、以前には感じていた問題を解くたびに成長したなぁとい…
the end バイナリは小さく単純である。最初にsleep()関数のアドレスを教えてくれる。標準出力と標準エラーを閉じた後に、任意アドレスへの1byteずつの書き込みを5回行える。 int main(void) { char* buf; sleep(0); printf("here is a gift %p, good luck ;…
はじめに TokyoWesternsで参加した。 結果は8731点の2位だった。 トップ5にはHackITのカンファレンスチケットが貰えて、さらにトップ3にはスポンサーから何かしらのソフトウェアのライセンスが貰えるらしい。 自分はArmy, A Heap Interface, Bank Reimplem…
はじめに TokyoWesternsで参加して5920ptsで6位だった。finalsに行ける順位なのでベトナムに行くかもしれない。ワールドカップの試合の結果を予想して当てると点数が貰えたりする良いCTFだった。 共同で解いた分を含めて4問解いた。house_of_cardとsecure_me…
Baby Heap 18.04 機能 起動すると以下のように機能を選択できる。 ===== Baby Heap 18.04 ===== 1. Allocate 2. Update 3. Delete 4. View 5. Exit Command: 各機能は、 1. Allocate 0x1 ~ 0x58までのサイズでmallocを実行できる。取得された領域はmemsetに…
はじめに ShenzhenWesternsで参加して全完した。普段はTokyoだが、0CTF Finalsで深圳に行っているメンバーがいたのでShenzhenになった(たぶん) condition main関数での[rbp-0x4]が0xdeadbeefであれば、flagが出力される。 # python -c 'print "\xef\xbe\xad\…
babyheap bug: 1. Allocにoff-by-one single byte null overflowがある。 下のチャンクのsizeが上書きでき、サイズの縮小とPREV_INUSEビットのクリアができる。 適当にやればチャンクのoverlapができるので、libcのアドレスをリークをしてfastbin attackをし…
Cat editで更新をしないとUAFが起きるので適当にやった #!/usr/bin/env python from pwn import * context(terminal=['tmux', 'splitw', '-h']) # horizontal split window # context(terminal=['tmux', 'new-window']) # open new window # libc = ELF('') …
warmup (misc) miscだがpwnだった。 stack bofがあるのでやるだけ。 #!/usr/bin/env python from pwn import * context(os='linux', arch='amd64') context.log_level = 'debug' # output verbose log RHOST = "47.91.226.78" RPORT = 10006 LHOST = "127.0.…
Babyshells - Pwn (50 + 15) x86, ARM, MIPSのshellcodeを送るだけ。 x86 #!/usr/bin/env python from pwn import * # context(os='linux', arch='i386') context(os='linux', arch='i386') context.log_level = 'debug' # output verbose log RHOST = "52.3…
once (pwn, 281pts) libcのアドレスは適当な選択をすれば漏れてくるので、適当に双方向リストのポインタを上書きした。 #!/usr/bin/env python from pwn import * context(os='linux', arch='amd64') context.log_level = 'debug' # output verbose log RHOS…
SHELTER (pwn, 200pts) 機能 ノート管理系のアプリ。ノートの新規作成とノートの削除を行うことができる。ノートの作成時に作成されたノートが割り当てられたメモリのアドレスを教えてくれる。また、3.Helpを選択するとcode領域のアドレスを得ることができる…
vuln 武器の名前の大きさは、0x20byteとなっている。しかし、4) give weapon a new nameで入力できるサイズが0x24byteとなっている。NULL終端されるため0x23byteが自由に制御でき、3byteがオーバーフローする。オーバフローする部分は、次の武器の関数ポイン…