etc...この広告は、90日以上更新していないブログに表示しています。いつもReverseばっかり見てるけど、そろそろPWNもできるようにならねば...と思い立ったのでPWN問題に取り組んでみた。途中まで)を書くことにする。問題サーバに接続するよう問題文が書いてあり、x86-64で動作するELFファイルが与えられる。exit[m]#DHCPのログ参照やステータス参照をできるようだ。変更や反映は認証済みの状態でないとできないようだ。パスワードはわからない。failed![m]#バイナリを見てみる一通り遊んだところでx86-64バイナリを眺めてみる。0(snip)Network部分まで実装してある模様。forkだしメモリがリークできれば普通にいけんじゃね、とか思いつつ読んでいく。writeやsystem関数が存在したため最初はこれらを奪う問題かと思っていたが、読み進めると認証部分をどうにかできそうなことがわかる。読み進めていくと、認証済みかどうかを見るためのflagが.bss領域の"0x602900"に存在し、そこを見て認証状態を確かめている。初期値で1がセットされ、0ならば認証済み、それ以外ならば未認証という具合だ。認証flagに隣接する領域(0x80Byte手前)に入力文字列が入る領域があることが分かった。して入力を受け付ける箇所がある。Byte)に置き換える処理を施している。Byteで上書きでき、認証をバイパスできるということになる。認証バイパスということで、認証flagを書き換える。")shell(s)権限昇格でき、すべての機能を使うことができるようになった。succesfull[m]$使えるようになった機能は以下。Serverを自身のサーバIPにして"./renew_lease"を叩いたら何か飛んでくるんじゃないかなーと思っていたが、今回ぼっちでやってて外部公開サーバも持ってないし、飲みにいく予定もあったためここで断念。なんか認証バイパスしたら変に納得してしまった感があり、後はひたすら飲んでいた。今回で良くわかったこと。SECCONとかで思ってたけど、外部公開サーバはやっぱりないとダメだ。ハニーポット立てるべきか...ボッチCTFはイクナイ(・A・)。腰を据えてしっかりやれない。自分に必要なのは集中力と忍耐力だった。他の問題に目を配らなかったけど、1問くらいは簡単なやつでいいから解いておいたほうがいい。やってなくても後で振り返ると意外とダメージがある。いえ久々にバイナリ読んで穴を探すっていう作業は楽しかった。次はもっとじっくりとワイワイやりたい。Cr3wがWriteup出してたので見てみたら、ここまではアプローチとしては正しかったみたいだ。httpsで待ってるとSuperfishでアクセスが来て、FLAGになってたみたいだ。