Port 53

明日のための技術メモ

picoCTF2018 Web Exploitation WriteUP

picoCTF2018のWeb Exploitation分野のWriteUPです。

WebExploitation

Inspect Me (125pt)

問題のページについて、ブラウザの検証ツールで中身を見る。

<!-- I learned HTML! Here's part 1/3 of the flag: picoCTF{ur_4_real_1nspe -->

早速トップページに何かいた。
ページとさっきの謎のコメントの文言から察するに、
CSSJavaScriptファイルに続きがいそう。
URLの後ろにmycss.css, myjs.jsをつけてソースファイルを調べると発見。

/* I learned CSS! Here's part 2/3 of the flag: ct0r_g4dget_098df0d0} */
/* I learned JavaScript! Here's part 3/3 of the flag:  */

なのでフラグは、picoCTF{ur_4_real_1nspect0r_g4dget_098df0d0}

Client Side is Still Bad (150pt)

パスワード忘れたのでなんとかして、とのこと。
問題のページを見るとパスワードだけ入れる ログインフォームがある。
ブラウザの検証ツールを見ると...

# 一部抜粋。
<script type="text/javascript">
  function verify() {
    checkpass = document.getElementById("pass").value;
    split = 4;
    if (checkpass.substring(split*7, split*8) == '}') {
      if (checkpass.substring(split*6, split*7) == 'd366') {
        if (checkpass.substring(split*5, split*6) == 'd_3b') {
         if (checkpass.substring(split*4, split*5) == 's_ba') {
          if (checkpass.substring(split*3, split*4) == 'nt_i') {
            if (checkpass.substring(split*2, split*3) == 'clie') {
              if (checkpass.substring(split, split*2) == 'CTF{') {
                if (checkpass.substring(0,split) == 'pico') {
                  alert("You got the flag!")
                  }
                }
              }
      
            }
          }
        }
      }
    }
    else {
      alert("Incorrect password");
    }
  }
</script>

思いっきりフラグ(パスワード)書いてあった。
数文字ずつ区切ってチェックさせてるだけ。
picoCTF{client_is_bad_3bd366}

Logon (150pt)

問題のサイトを開くと怪しいログインフォームが。
ユーザ名とパスワードを入れてログインする形式だが、
何も書かずともログインできる。
IDのところだけadminと入れると怒られるが、ここでCookieを確認。
ログイン関連のパラメータでusername, passwordがある。その上にadmin=FALSEとあるので、 ユーザ名・パスワードを空欄にして BurpSuite等プロキシで足止めし、
ログインボタンを押してからこの値をTRUEに書き換える
picoCTF{l0g1ns_ar3nt_r34l_aaaaa17a}

Irish Name Repo (200pt)

出たなSQLインジェクション
ID欄にadmin'--と入力し、想定されるSQLを崩してIDだけで検索させる

# 元の文
select id, passwd from users_tbl where id='admin' and passwd='hoge';

# 崩した後
select id, passwd from users_tbl where id='admin'--'and passwd='hoge';

picoCTF{con4n_r3411y_1snt_1r1sh_d121ca0b}

Mr. Robots (200pt)

問題のサイトのソースやらCookieを見ても特に怪しいところはなかった。
なので同じディレクトリに何かファイルとかありそう、と思った。
タイトル的にrobots.txtとか

User-agent: *
Disallow: /30de1.html

Disallow欄にあるHTMLファイルが怪しいので、アクセスしてみたところ
フラグが書いてあった。
picoCTF{th3_w0rld_1s_4_danger0us_pl4c3_3lli0t_30de1}

No Login (200pt)

問題のサイトについて、
adminでログインするとフラグが出るらしい。
ところがSign inボタンを押しても実装されてないとのことだった。
Burp SuiteでCookieを追加し、admin=Trueで編集したところ、フラグが閲覧できた。
adminかそうでないかでしか見てないのね。
picoCTF{n0l0g0n_n0_pr0bl3m_50e16a5c}

Secret Agent (200pt)

問題のサイトにあるFlagボタンを押すと、

You're not google! Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36

と言われる。User Agentを見ているようなので、これを偽装する。
Chromeの検証ツール右上にある、・が縦に3つ並んだボタンを押す -> more tools -> network conditionsを選び、
User AgentをCustomからGooglebotにしてブラウザを更新するとフラグが見つかる。

picoCTF{s3cr3t_ag3nt_m4n_134ecd62}