picoCTF Writeup (Web問)その1
GET aHead(20pts)
Description
Find the flag being held on this server to get ahead of the competition http://mercury.picoctf.net:15931/
リンクにアクセスすると以下のサイトにアクセスできる
devtoolsのネットワークタブ探してみるがflagがなかった
問題のタイトルより、入手したいのはHEADだと予測できるため、HEADメソッドでアクセスしてみると入手できた
curl --head http://mercury.picoctf.net:15931/index.php HTTP/1.1 200 OK **flag**: picoCTF{r3j3ct_th3_du4l1ty_82880908} **Content-type**: text/html; charset=UTF-8
別解
・PythonでHTTPヘッダー情報を取得する
import requests url = 'http://mercury.picoctf.net:15931/index.php' response = requests.head(url) # HEADリクエストを送信 # レスポンスヘッダーを表示 for key, value in response.headers.items(): print(f'{key}: {value}') # サーバーが返すHTTPヘッダー情報の詳細を確認し、フラグを探す
・firefoxのdevtoolsを使用し、HEADメソッドを送る
・Burp SuiteのSend to RepeaterでHEADリクエストを送る
Cookies(40pts)
Description
Who doesn't love cookies? Try to figure out the best one. http://mercury.picoctf.net:21485/
入力フォームが一つだけあり、薄くsnickerdoodleと書いてある
とりあえずsnickerdoodleと入力してみると特別なcookieを欲しているみたい
devtoolsでCookieの値を見てみる
値が0なら1にしてみたくなるから変更してリロードすると次はchocolate chip cookieと表示が変わった。2,3と値を変更しても別のcookieの名前になる
値を30にするとThat doesn't appear to be a valid cookie.と表示され、nameの値が-1に変更された
再度nameの値を29にしてCookieの値の変化を見ると一瞬だけ名前がsessionの Cookieが出現したのを確認したため、burp suiteで確認すると、sessionの値がわかる
そのsessionをCookieに追加してリロードすると、That doesn't appear to be a valid cookie.と表示されることが確認できた
問題文を振り返ってみると、Try to figure out the best one.と書かれているため、nameの値を合致させる必要がるのではと思い、総当たりで試してみることにする。 nameの値を1~30で総当たりするのはリロードの手間を考えると面倒だし、今後同じようなことをする必要があった場合に不便なため、Burp SuiteのSniperを使用し、総当たりを自動化させるとflagが入手できた 手順: (1) 対象プロキシを見つける
(2)右クリックをしてSend to Intruderを選択
(3) Intruderの画面
(4) name = 1の1をドラッグし、Add §を押してname = §1§にする
(5) Payloadsを選択し、以下のようにnameの値を1~29まで試行できるように設定し、Start Attackをクリックする
(6) レスポンスを確認すると、Payloadが29の時は有効でないCookieであるため、Lengthの値が極端に低くてもわかるが、18の時のLengthが他と比較するとかなり小さい
(7)18のレスポンスを確認してみるとflagが入手できた
Insp3ct0r(50pts)
Description
Kishor Balan tipped us off that the following code may need inspection:
https://jupiter.challenges.picoctf.org/problem/44924/
(link) or http://jupiter.challenges.picoctf.org:44924
アクセスすると検査してと書いてある
以下を使ってサイトが作られているみたい
devtoolsで除くとHTMLでflagの1/3を入手できため、同様にCSSとJSで入手してくっつけて終了! (ソースはfirefoxより、chromeの方が見やすいかも)
Scavenger Hunt(50pts)
Description
There is some interesting information hidden around this site http://mercury.picoctf.net:27393/. Can you find it?
Insp3ct0rと同じようなレイアウトになっている
構成確認をする
devtoolsで確認すると、flagの一部分をゲット
同様にCSSでもゲット
JSをみると何か思ってたのと違うのが出た。Googleにインデックスされないようにするには?と書いてる。Googleから自分のウェブサイトをインデックス対象外にするためにはrobots.txtを設定すればいいからrobots.txtを見る。(http://mercury.picoctf.net:27393/robots.txt)
flagのPart3が見つかった。
Apache サーバーの設定やエラーページ等に関する情報が保存される場所としてよく知られているのは .htaccess
ファイルと server-status
のため、アクセスしてみる
まだ終わりじゃないみたい。 MacでWeb開発をする際に色々な情報を保存できる?検索するとどうやら.DS_Storeファイルらしい これは、Macで自動生成されるシステムファイルでフォルダ内のアイコンの位置や表示設定などが保存されているデータが入ってるらしい。確かにたまに見るかも...
DS_Storeにアクセスすると最後のflagが入手できた