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?

CTFで学んだこと

0
Last updated at Posted at 2026-02-27

document.cookie

secret_recipe=cGljb0NURntjMDBrMWVfbTBuc3Rlcl9sMHZlc19jMDBraWVzX0M0MzBBRTIwfQ%3D%3D
のように今のサイトに保存されているクッキーが取得できる

.split("=")

document.cookie.split("=")
= で文字列を区切る。
結果はこうなる:

[
  "secret_recipe",
  "cGljb0NURntjMDBrMWVfbTBuc3Rlcl9sMHZlc19jMDBraWVzX0M0MzBBRTIwfQ%3D%3D"
]

atob()

atob(文字列)
👉 Base64をデコードする関数。
つまり:
Base64 → 元の文字列
に戻す。

head-dump

サーバーのメモリ(heap)をそのままファイルに吐き出す機能。

JavaやNode.jsなどのアプリケーションで、バグ調査やパフォーマンス確認のために使われる。

このダンプには、実行中の変数や認証情報など、機密データが含まれていることが多い。

ダンプする機能とは?

開発や運用のために、サーバーの現在の状態を一括で保存する機能。

正常なら認証付き・ローカル限定・開発環境のみで使う。

ROT13とは

アルファベットを13文字ずらす単純な換字暗号。

例:

  • A ↔ N
  • B ↔ O
  • C ↔ P

実際に変換すると:

ABGR → NOTE

medium crack the Gate2にて

① サーバーはレート制限をしている
本物IP(TCP層)で管理するべき
仕様:
同じIPから何回もログイン失敗 → 20分ロック
つまり内部では多分こうなっている:

failed_attempts[ip] += 1

if (failed_attempts[ip] > 1) {
    lockout()
}
→サーバーがHTTPヘッダーのXFFを信頼

② サーバーは「IP」をどう取得している?
普通は:
req.ipやreq.connection.remoteAddress使う。
③ でもこのサーバーは…ヒントにあった:X-Forwarded-Forを使っている可能性がある。
つまり内部でconst ip = req.headers["x-forwarded-for"];みたいなこをしている。
🚨 ここが致命的ミスX-Forwarded-For はユーザーが自由に書けるヘッダーつまり:
X-Forwarded-For: 1.1.1.1も
X-Forwarded-For: 999.999.999.999も自由。


pngについての問題 難易度medium Trickstar

サイトには:📂 「PNG画像だけアップロードできます」
と書いてある。
ここで考えるべきこと
「どうやってPNGかどうか判定してるん?」
普通は2パターン:
① ファイル名を見るだけ
② ファイルの中身(先頭バイト)を見る

PNGの正体

PNGファイルは必ず先頭がこれ:
89 50 4E 47 0D 0A 1A 0A
つまりサーバーは:「最初がこれならPNGでしょ」って思ってるだけ。
ここが穴サーバーは:✔ 先頭だけチェック
✔ それ以外は見てない
ならどうする?
発想
「じゃあ先頭だけPNGにして、後ろに悪いコード書けばいいやん

robots.txtとは?

通常、webサイトのルートに配置されているファイルで、クローラー(ウェブページからデータを収集するために自動的にウェブを閲覧するbot)からウェブサイトへのアクセスを許可するか、禁止するかを決定するファイル。

JAuth について (JAuth PicoCTF/medium/)

ログインに成功し、そこからのJWTでのクッキーの問題。
JWTとは => ユーザーの認証情報に関してデータを安全に扱う、やり取りするためのトークン形式のこと。署名付きのJSONデータをBASE64でエンコードしたもの!
JWTはサーバーが発行し、Cookie等を利用してクライアント側に保存されます。
Base64をエンコードするだけではJWTデバッカー(https://token.dev/)
より、機密情報をやめてということ!今回の問題はuserをadminに変更し解けました!
alog=None攻撃というやつらしい

wasm2wat で何をしたか

bashwasm2wat flag2.wasm -o flag2.wat

WASMは機械語なので直接読めない
wasm2watはWASMをWAT(人間が読めるテキスト形式)に変換するツール

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?