[CpawCTF] 第五夜: HTML から Flag を見つける
Q9.[Web] HTML Page
以下、問題文
Q9.[Web] HTML Page
10pt
HTML(Hyper Text Markup Language)は、Webサイトを記述するための言語です。 ページに表示されている部分以外にも、ページをより良くみせるためのデータが含まれています。 次のWebサイトからフラグを探して下さい。 http://q9.ctf.cpaw.site
※この問題のサーバへの攻撃はお止めください。
答案
今回は問題文に web
ページの URL
が提示されていますね。
どうやら、この中に Flag
が隠れているようです。
とりあえず、URL
を踏んで、所定のページにアクセスしてみますが、これは一般的なページのようです。
このページ自体は、第一夜にて取り上げましたが...
内容は CTF
のジャンルや、問題の種類、モチベーション、身につくスキル、関連ページへのリンクなど、
CTF
に関してよくまとまっていると思います。
ぱっと見、Flag
っぽい文字列はないですが、Cmd + f
でページを検索してみます。
検索キーワードは、トップページに、Flag
は全部 cpaw{hogehoge}
で書かれています、というヒントがあるので
cpaw
と入れてみます。
が、Flag
っぽいものはありませんでした。
さて、あと思い当たることとして、HTML
内にコメントなどで書かれているというケースです。
web
ページは HTML
で書かれているわけですが、
これは実際に表示されている文字が書かれている以外にも、
<> ~ </>
で書かれるタグがあったり、
見栄えをよくするため CSS
とか、(このページは) Bootstrap
などのフレームとかのあれこれが書かれており
一文字一文字、あるいは一行一行読んでいくには面倒です (面倒くさがりなだけ)。
そこで、困ったのでまた「検索」します。
HTML
と言えど、文字列の塊なので、この中から所望の文字列に一致する部分を探しましょう。
問題文にある URL
を curl
に渡して、Q9 に提示されているページの HTML
を拾います。
これをそのまま、パイプラインで grep
に渡してみます。
先ほどと同じく、キーワードは cpaw
で検索してみましょう。
$ curl http://q9.ctf.cpaw.site/ | grep -n cpaw
-n option
は 見つかった cpaw
を含む行が、Q9 の HTML
の何行目にあるのか出力して欲しいのでつけております。
10: <meta name="description" content="flag is cpaw{9216ddf84851f15a46662eb04759d2bebacac666}">
10行目にあるらしいです。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags --> <meta name="keyword" content="ctf,flag"> <meta name="description" content="flag is cpaw{9216ddf84851f15a46662eb04759d2bebacac666}"> <meta name="author" content="takahoyo">
ありました。
これ見るとむしろ、cpaw
というよりは、flag
で検索されることを想定している感じなのですかね...
ちなみに、大文字、小文字に鈍感にする option -i
をつけると、
Chrome
で検索した方も出てきますね。
$ curl http://q9.ctf.cpaw.site/ | grep -n -i "cpaw" 10: <meta name="description" content="flag is cpaw{9216ddf84851f15a46662eb04759d2bebacac666}"> 69: <p>クイズ形式(Jeopardy形式)は、数問のコンピュータやセキュリティに関する問題が与えられて、その問題を解く形式である。Cpaw CTFもこれに当てはまる。
余談でした。
submit
Flag
が見つかったので、提出して終了です。
次は、JEPG
ファイルの属性から、川の場所を特定する問題だそうです...。
そういうことをするのは初めてだ...