0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Writeup】WEST-SEC#7に参加してきた

Posted at

はじめに

先日、WEST-SEC#7 CTFを通じてセキュリティの基礎知識、技術、対策、設定を「楽しく」学ぶに参加してきました。
「参加後にSNSで感想を発信してくれる人枠」として参加したので、今回記事にしてみました。
ただし、運営側からCTF問題の答えの掲載はご遠慮願いますと指示があったので答えまでは記載してません。

練習問題

TXTレコード

Q)west-sec.techのTXTレコードを見よ。

hint)

TXTレコードという単語から名前解決をするのだろうと予測。
早速、nslookupコマンドで試してみた。

$ nslookup west-sec.tech
Server:		192.168.10.1
Address:	192.168.10.1#53
Non-authoritative answer:
*** Can't find west-sec.tech: No answer

あれ、うまくいかない。
今度はオプションをつけてみる

$ nslookup -type=txt west-sec.tech
main parsing west-sec.tech
addlookup()
make_empty_lookup()
...(略)
Non-authoritative answer:
printsection()
west-sec.tech	text = "What is the color of 100-1?"
...(略)

txtレコードにコメント(なぞなぞ?)を発見。
これを解くと、flagをゲット。

Where

Q)写真の場所は?

image.png

hint)

OSINT問題でした。有名な神社っぽいけど似てる神社が他にもあるかも、、

暗号

公開鍵暗号

Q)

1111111を素因数分解し、小さい方の値と、この仕組みを使った暗号方式を続けて答えよ。
たとえば、値が 12 で暗号方式が AES であれば、 12AES がFLAG

hint)

以下のサイトを使った。

映画「サマーウォーズ」の主人公はたしか素因数分解の仕組みを使った暗号を一瞬で解いてた気がする

OSコマンドインジェクション

PHPの関数

Q)

この問題は、脆弱性Webサーバにログインした後、「メールアドレスの変更」画面からメールアドレスを変更する処理に関する問題である。
添付にあるソースファイルを見よ。

hint)

添付されたchange_mail_confirm.phpを確認。
<?php ... ?>で囲まれた箇所を注意深く見る。
image.png
(メールアドレスを変更する処理が記載されてそうなキーワードはsendmailとかnew_mailとかかなぁ。。。)

コマンド実行

Q)

この脆弱性Webサーバのユーザアカウントの中で、naで始まるユーザ名を答えよ。
※実際にメール変更をしたり、攻撃を利用して不正行為をしないこと。不適切な行為を見つけた場合、即座に退出いただきます。

hint)

診断対象へアクセスする。(サイトのログイン画面?)
image.png
まずは、正常系を確かめたかったので、新規登録からユーザを新規登録する。
image.png
登録するデータは適当でも問題なさそう。
image.png
新規登録が終わったら、現在の情報画面へ遷移する。(所謂、マイページ画面)
追記以下の画面ではユーザ:b aとしてログインしてます。
image.png
この問題はOSコマンドi脆弱性を利用するので、画面内でこの脆弱性がありそうな箇所を探す。
そういえば、別の問題(PHPの関数)で「メール変更」の箇所にOSi脆弱性の可能性があることが分かった。
image.png
そこから、/etc/passwdファイルを見れるか確認。(答えの箇所は隠してます。)
image.png

ちなみに、、、ほかにも脆弱性がてんこ盛りでした。。

【ディレクトリトラバーサル】

怪しい写真アップロード機能の画面を発見。
アップロードした写真を表示してくれる機能もある。
ここにディレクトリトラバーサル脆弱性があるんじゃないかと疑ってみる。
image.png
ディレクトリトラバーサル脆弱性を利用して/etc/passwdファイルを確認。(答えの箇所は隠してます。)
image.png
この方法でもflagをゲットできた。

【XSS】

image.png
氏名欄に検査文字列入れると、<s>が有効になってた。
image.png

【SQLi】

ユーザ情報を見る画面にSQLi脆弱性を発見。
自分の情報はURLの?id=250で確認できる。

URL:http://(省略)/user_information.php?id=250

image.png
idの入力値を?id=250' OR 'a'='aに改変してみると、DBに登録されているユーザ情報を確認することができた。

URL:http://(省略)/user_information.php?id=250' OR 'a'='a

image.png

ログ分析

本項目では、splunkを使用した。
基本操作などは運営側が作成したドキュメントを参考にしてほしい。
URL:https://west-sec.com/entry/splunk

Splunk1

Q)

■初期操作
・Splunkにログインしてください。
・左上の「Search & Reporting」
・検索画面が表示されたら、 検索窓に「index=main」を入力、時間を「全時間」にして、緑の検索ボタンを押す
■問題
Splunkには、いくつかのログが投入されている。今回の場合、いくつのログファイルが投入されているか。
※デフォルトで表示されるようにはなっているが、左のバーの「すべてのフィールド」で「source」がチェックされていることを確認しておこう。

hint)

問題文に書かれた手順通り、作業を実施する。
image.png
表示されているの個数を数える。

Splunk2

Q)

ログは、データ量が最も多い以下を使う(今後も同じ)
source="secure-20210719.log"
これは、Linuxサーバにおける/var/log/secureのログであり、ログイン試行などを含むセキュリティ関連のログが保存されている。
さて、このログにおいて、最も多くログイン試行をしたユーザにおける、その試行回数を答えよ。
【参考】
・ログイン試行の失敗のログの例(の抜粋)は以下であり、vagrantというのがログイン試行したユーザ名である。
Invalid user vagrant from 179.167.166.51 port 40976
・初期状態から実施するには、検索窓に「index=main」を入力、時間を「全時間」にして、緑の検索ボタンを押す

hint)

問題文から条件文を考える。

index="main" source="secure-20210719.log" |stats count by user | sort -count

image.png
最も多くログイン試行をしたユーザはuserであることが分かった。

Splunk3

Q)

※同じくsecure-20210719.logのログにて
ログインに成功したのは何回か

hint)

action="success"で絞る。

index="main" source="secure-20210719.log" action="success"

image.png
そのあと、srcのカウントを確認する。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?