過程が大事

学んだことを適当にアウトプットします

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が入手できた