1
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?

毎日write up 3日目 jAuth

Posted at

問題

Description

Most web application developers use third party components without testing their security. Some of the past affected companies are:
Equifax (a US credit bureau organization) - breach due to unpatched Apache Struts web framework CVE-2017-5638
Mossack Fonesca (Panama Papers law firm) breach - unpatched version of Drupal CMS used
VerticalScope (internet media company) - outdated version of vBulletin forum software used
Can you identify the components and exploit the vulnerable one?
Additional details will be available after launching your challenge instance.

サードパーティ制のコンポーネントには脆弱性がある場合があるから気をつけようね的なことが書いてあります。何かしらライブラリ等の脆弱性をつくのでしょうか
スクリーンショット 2025-05-08 20.57.26.png

解答

早速書いてあるtestとTest123!でログインしてみます
スクリーンショット 2025-05-08 21.51.48.png

ログアウトボタンがあるのみで、特になにもないです。

いつものごとくプロキシツール等で通信をみると、/authでのPOSTでレスポンスとしてSet-Cookie:token=にトークンが帰ってきています。/privateのリクエストをみてもこれが使われていることがわかります。

以下のサイトでデコードしてみます

スクリーンショット 2025-05-08 22.38.38.png

"role": "user"をadminに書き換えることができたら良さそうですが、署名されているためこのままでは書き換えることができません。

サーバー側のスクリプトもなければ鍵もなく、署名アルゴリズムも比較的安全なので正面突破は難しそうです

しかし他に怪しいところもないので、脆弱性やテクニックを探します。

するとjwtにアルゴリズムをnoneにする攻撃があることを発見

まさしくこれですね。algをnoneに書き換えます。
これでHSAの署名を掻い潜り、好き勝手にjwtトークンを書き換えることができます。
先程のサイトでデコードからエンコードに切り替えて、algとroleを書き換えてエンコードします。
スクリーンショット 2025-05-08 22.41.09.png
そして得られたトークンを使ってcurlやプロキシツールをつかってリクエストを送るとflagを入手できました

1
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
1
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?