picoCTF2019 Web Exploitation WriteUP
picoCTF2019のWeb問題のWriteUPを書く
Web Exploitation
- Insp3ct0r (50pt)
- don't-use-client-side (100pt)
- where are the robots? (100pt)
- logon (100pt)
- picobrowser (200pt)
Insp3ct0r (50pt)
問題のサイトにアクセスし、
検証ツールを使ってフラグを探す。
トップページに1つ目。他にもcss, jsがいるのでこちらのソースも見ることに。
<div id="tababout" class="tabcontent"> <h3>How</h3> <p>I used these to make this site: <br/> HTML <br/> CSS <br/> JS (JavaScript) </p> <!-- Html is neat. Anyways have 1/3 of the flag: picoCTF{tru3_d3 --> </div>
CSSとJSのソースファイル名をトップページのHTMLから確認する
<link rel="stylesheet" type="text/css" href="mycss.css"> <script type="application/javascript" src="myjs.js"></script>
mycss.cssを確認すると2つ目がいた
#tababout { background-color: #ccc; } /* You need CSS to make pretty pages. Here's part 2/3 of the flag: t3ct1ve_0r_ju5t */
myjs.jsに3つ目を発見
window.onload = function() { openTab('tabintro', this, '#222'); } /* Javascript sure is neat. Anyways part 3/3 of the flag: _lucky?d3db9182} */
全部合わせて、picoCTF{tru3_d3t3ct1ve_0r_ju5t_lucky?d3db9182}
don't-use-client-side (100pt)
問題のサイトにPWを入れてログインする問題。
しかしソースを見ると、認証のスクリプトにPW(フラグ)が書いてあってバレバレ
<script type="text/javascript"> function verify() { checkpass = document.getElementById("pass").value; split = 4; if (checkpass.substring(0, split) == 'pico') { if (checkpass.substring(split*6, split*7) == 'e22d') { if (checkpass.substring(split, split*2) == 'CTF{') { if (checkpass.substring(split*4, split*5) == 'ts_p') { if (checkpass.substring(split*3, split*4) == 'lien') { if (checkpass.substring(split*5, split*6) == 'lz_c') { if (checkpass.substring(split*2, split*3) == 'no_c') { if (checkpass.substring(split*7, split*8) == 'c}') { alert("Password Verified") } } } } } } } } else { alert("Incorrect password"); } } </script>
並び替えて全部合わせて、picoCTF{no_clients_plz_ce22dc}
where are the robots? (100pt)
問題のサイトでrobotsを探す。
robots.txtは、クローラーにアクセスしてほしいところ、ほしくないところを設定するファイル。
URLの後ろにrobots.txtを付けて参照できないか確認する。
User-agent: * Disallow: /54e98.html
54e98.htmlに何かありそうなので、アクセスするとフラグが書いてあった。
picoCTF{ca1cu1at1ng_Mach1n3s_54e98}
logon (100pt)
問題のサイトを見ると、IDとパスワードの入力画面がある。
BurpSuiteでプロキシを立てて、見てみるとIDだけは確認しているがパスワードは空欄でも通るみたい。
なので、きっと何かのフラグが立つとログインできてフラグが取れそうな気がする。
admin=False
になっていたので、admin=True
にしてForwardするとフラグが取れた。
picoCTF{th3_c0nsp1r4cy_l1v3s_a03e3590}
picobrowser (200pt)
問題のサイトにアクセスし、Flagボタンを押すとpicobrowserじゃない!と怒られる。
なのでUser Agentを編集する。
検証ツール->右上隅の・3つ並んだボタン->more tools -> network conditionsを選び、
User Agentを画像の通り編集してリロードするとフラグが出た。