
phpMyAdmin의 CVE-2020-5504를 겨냥한 승인된 SQL 인젝션 익스플로잇 프레임워크로, 자동화된 데이터베이스 열거, 블라인드 인젝션, 프록시 지원, 그리고 침투 테스트 및 보안 연구를 위한 구조화된 보고 기능을 갖추고 있습니다.
phpMyAdmin 배포 환경에서 CVE-2020-5504를 식별하고 검증하기 위한 공인된 보안 테스트 및 연구 프레임워크
책임 있는 사용 안내: 이 프로젝트는 귀하가 소유하거나 명시적으로 평가 권한을 부여받은 시스템에서만 사용하도록 고안되었습니다. 서면 허가와 명확한 테스트 범위 없이 공개, 제3자 또는 운영 시스템을 대상으로 사용하지 마십시오.
| CLI 출력 | 사용법 |
|---|---|
![]() | ![]() |
CVE-2020-5504는 phpMyAdmin 사용자 계정 페이지에 영향을 주는 SQL 인젝션 취약점입니다. 공식 phpMyAdmin 권고에 따르면, phpMyAdmin 4.9.4 이전의 4.x 버전과 phpMyAdmin 5.0.0이 영향을 받으며, 권고는 4.x 계열의 경우 4.9.4 이상, 5.x 계열의 경우 5.0.1 이상으로 업그레이드할 것을 권장합니다.[1] 국가 취약점 데이터베이스(NVD)는 악용을 위해 서버에 접근 가능한 유효한 MySQL 계정이 필요하다고 기록하고 있습니다.[2]
이 프로젝트는 공인된 침투 테스트, 통제된 검증, 보안 연구를 위한 체계적인 워크플로우를 제공합니다. 평가자가 대상을 식별하고, 대상이 영향을 받는 것으로 보이는지 확인하며, 증거를 문서화하고, 수정 추적을 위한 구조화된 보고서를 생성하는 데 도움이 되도록 설계되었습니다.
프레임워크는 네 가지 목표를 중심으로 구성됩니다:
식별 phpMyAdmin 설치 환경을 찾고 버전 관련 지표를 수집합니다.
검증 가능한 경우 통제되고 비파괴적인 점검을 통해 의심되는 노출을 확인합니다.
평가 구성 가능한 제한, 재시도 동작, 선택적 프록시를 사용하여 공인된 대상을 평가합니다.
보고 검토, 보관, 워크플로우 통합이 쉬운 형식으로 결과를 보고합니다.
이 프로젝트는 패치, 공급업체 지침, 보안 구성, 또는 공식 침투 테스트 승인 절차를 대체하지 않습니다. 모든 배포, 구성, 버전, 네트워크 환경을 탐지한다는 보장도 없습니다. 모든 결과는 수동으로 검토되어야 하며, 자동 보안 판정이 아닌 평가 증거로 취급되어야 합니다.
자산 소유자로부터 명확한 승인을 받은 경우에만 이 도구를 자산에 대해 실행하십시오. 승인에는 대상, 허용된 테스트 기간, 허용된 기법, 소스 IP, 데이터 처리 요구 사항, 에스컬레이션 연락처, 중지 조건이 정의되어야 합니다.
인터넷에 연결된 시스템에 단순히 연결 가능하다는 이유만으로 테스트하지 마십시오. 연결 가능성은 허가가 아닙니다.
평가 모드는 데이터베이스, 테이블, 열 또는 레코드에 대한 정보를 생성할 수 있습니다. 모든 출력을 잠재적으로 민감한 정보로 취급하십시오. 적절한 접근 제어를 사용하여 보고서를 저장하고, 셸 기록에 비밀을 남기지 말며, 참여 규칙에 따라 보고서를 암호화하고, 참여 종료 후 임시 데이터를 안전하게 삭제하십시오.
평가를 시작하기 전에 검증된 백업 또는 복구 절차, 시스템 소유자와의 통신 채널, 문서화된 롤백 또는 중지 계획을 확인하십시오. 가능하면 격리된 테스트 환경을 우선 사용하십시오. 평가 질문에 답할 수 있는 가장 덜 침습적인 모드를 사용하십시오.
권장 워크플로우는 의도적으로 단계적으로 구성되어 있어, 평가자가 가장 영향이 적은 활동부터 시작하여 승인된 경우에만 범위를 확장할 수 있습니다.``` ┌──────────────────┐ │ Define scope │ Confirm written authorization and test boundaries └────────┬─────────┘ │ ▼ ┌──────────────────┐ │ Detect │ Identify phpMyAdmin and collect version indicators └────────┬─────────┘ │ ▼ ┌──────────────────┐ │ Verify │ Perform controlled vulnerability checks └────────┬─────────┘ │ ▼ ┌──────────────────┐ │ Assess, if │ Continue only when explicitly authorized │ approved │ └────────┬─────────┘ │ ▼ ┌──────────────────┐ │ Report │ Preserve evidence, limits, timestamps, and conclusions └──────────────────┘
긍정적 결과는 대상 버전, 인증 컨텍스트, 요청 증거, 참여 범위와 대조하여 검토해야 합니다. 부정적 결과는 배포가 안전하다는 것을 증명하지 않으며, 버전 차이, 액세스 제어, 라우팅, 애플리케이션 사용자 지정, 속도 제한 또는 불충분한 가시성을 반영할 수 있습니다.
---
## 요구 사항
### 런타임 요구 사항
| 요구 사항 | 지원 기준선 |
| --- | --- |
| 운영 체제 | Linux, macOS 또는 Windows |
| Python | 3.6 이상, 종속성 호환성에 따름 |
| 패키지 관리자 | `pip` |
| 버전 관리 | Git, 리포지토리에서 설치할 때 |
| 네트워크 액세스 | 명시적으로 승인된 평가 대상에 대한 연결 |
### Python 종속성
프로젝트는 현재 다음 패키지를 요구합니다:```
requests>=2.31.0
rich>=13.7.0
colorama>=0.4.6
dataclasses>=0.6; python_version < "3.7"
재현 가능한 설치를 위해서는 패키지를 개별적으로 설치하는 것보다 리포지토리의 requirements.txt 파일을 사용하는 것이 좋습니다.
git clone https://github.com/CerberusMrXi/phpMyAdmin-CVE-2020-5504-Exploit cd phpMyAdmin-CVE-2020-5504-Exploit
python3 -m venv .venv source .venv/bin/activate python -m pip install --upgrade pip python -m pip install -r requirements.txt
chmod +x start.sh quick.sh exploit.py
다음 명령으로 안내 인터페이스를 시작합니다:```bash
./start.sh
git clone https://github.com/CerberusMrXi/phpMyAdmin-CVE-2020-5504-Exploit Set-Location phpMyAdmin-CVE-2020-5504-Exploit
py -m venv .venv ..venv\Scripts\Activate.ps1 python -m pip install --upgrade pip python -m pip install -r requirements.txt
.\start.bat
If PowerShell 실행 정책으로 인해 실행 프로그램(launcher)이 실행되지 않는 경우, 승인된 환경에서 저장소의 문서화된 PowerShell 진입점을 사용하십시오:```
powershell -ExecutionPolicy Bypass -File .\start.ps1
requirements.txt를 사용할 수 없거나 의존성을 직접 관리하려는 경우에만 사용하세요:```bash
python -m pip install "requests>=2.31.0" "rich>=13.7.0" "colorama>=0.4.6"
---
## 사용법
아래 예시에서는 `https://authorized.example/phpmyadmin`을(를) 자리 표시자로 사용합니다. 승인된 범위 내에 명시적으로 포함된 대상으로만 교체하십시오.
### 탐지 모드
탐지 모드는 권장 시작점입니다. 이는 애플리케이션의 지문을 수집하고 악용을 시도하지 않고 버전 표시기를 수집하기 위한 것입니다.```bash
python exploit.py \
--url https://authorized.example/phpmyadmin \
--mode detect
해당되는 경우 원래 인터페이스의 짧은 형식 플래그도 지원됩니다:```bash python exploit.py -u https://authorized.example/phpmyadmin -m detect
### 검증 모드
검증 모드는 통제된 취약점 테스트를 위한 것입니다. 계약이 명시적으로 검증 활동을 허용하고 필수 자격 증명이 승인된 방법으로 제공된 경우에만 사용하십시오.```bash
python exploit.py \
--url https://authorized.example/phpmyadmin \
--mode verify \
--username "$PMADB_USERNAME" \
--password "$PMADB_PASSWORD"
실제 비밀번호를 명령줄에 직접 입력하지 마십시오. 명령줄은 셸 기록에 저장되거나 로컬 프로세스 검사에 노출될 수 있기 때문입니다.
연구 모드는 더 광범위한 승인된 평가 활동 및 데이터 열거를 수행할 수 있습니다. 전용 테스트 환경 또는 요청된 범위에 대해 명시적 서면 승인이 있는 작업으로 제한되어야 합니다.```bash
python exploit.py
--url https://authorized.example/phpmyadmin
--mode research
--username "$PMADB_USERNAME"
--password "$PMADB_PASSWORD"
--max-databases 20
--max-tables 50
### 드라이런 모드
드라이런 모드는 명령 구성을 검증하고, 워크플로 동작을 검토하며, 침습적인 작업을 수행하지 않고 구성을 테스트하는 데 유용합니다.```bash
python exploit.py \
--url https://authorized.example/phpmyadmin \
--dry-run
테스트 중에 요청과 응답을 검사해야 할 때 승인된 인터셉트 프록시를 통해 트래픽을 라우팅하십시오:```bash
python exploit.py
--url https://authorized.example/phpmyadmin
--mode verify
--proxy http://127.0.0.1:8080
프록시는 참여 규칙에 의해 허용되고, 불필요한 민감 데이터를 수집하거나 보관하지 않도록 구성된 경우에만 사용하십시오.
### 대상 데이터베이스 평가
범위 문서가 특정 데이터베이스를 명시하는 경우, 구현이 이를 지원하는 곳에서는 평가를 해당 데이터베이스로 제한하십시오:```bash
python exploit.py \
--url https://authorized.example/phpmyadmin \
--mode research \
--database target_database \
--max-tables 25
연결 실패, 예상치 못한 응답 또는 구성 문제를 조사할 때 상세 출력을 활성화하세요:```bash
python exploit.py
--url https://authorized.example/phpmyadmin
--mode verify
--verbose
### 대화형 인터페이스
대화형 런처는 안내 프롬프트, 모드 선택, 진행 표시기, 색상으로 구분된 상태 출력을 제공하므로 처음 사용하는 사용자에게 권장됩니다.```bash
# Linux/macOS
./start.sh
# Windows
start.bat
모드 이름은 의도된 워크플로를 설명하는 것이지 모든 구성에서의 동작을 보장하지 않습니다. 라이브 시스템에서 모드를 사용하기 전에 구현 및 수행(engagement) 규칙을 검토하십시오.
다음 옵션은 현재 프로젝트 인터페이스로 표시됩니다. python exploit.py --help를 실행하여 체크아웃에서 사용 가능한 정확한 옵션 이름을 확인하십시오.
중요: TLS 인증서 검증 비활성화는 전송 보안을 약화시키며 통제된 테스트 환경으로 제한해야 합니다. 이를 운영(프로덕션) 수정 사항으로 간주하지 마십시오.
도구는 트래픽을 승인된 프록시를 통해 라우팅해야 하는 경우 표준 프록시 변수를 사용할 수 있습니다:```bash export HTTP_PROXY=http://127.0.0.1:8080 export HTTPS_PROXY=http://127.0.0.1:8080
커밋된 `.env` 파일에 자격 증명을 저장하지 마십시오. 테스트 자격 증명에 환경 변수를 사용하는 경우, 셸 세션을 보호하고 작업 종료 후 이를 지우십시오:```bash
export PMADB_USERNAME='authorized-test-user'
export PMADB_PASSWORD='use-an-approved-secret-source'
# Remove them when finished
unset PMADB_USERNAME PMADB_PASSWORD
비밀번호가 아닌 지속적인 평가 설정을 위해 config.yaml 파일을 생성하세요:```yaml
scan:
timeout: 10
retries: 3
max_databases: 50
max_tables: 100
max_columns: 50
max_rows: 100
delay_between_requests: 0.5
report: format: json output: report.json include_sensitive: false
이 파일에 자격 증명을 저장하지 마세요. 파일이 조직의 승인된 비밀 관리 프로세스로 보호되는 경우는 예외입니다. 민감한 값을 포함하는 로컬 구성 파일은 `.gitignore`에 추가하세요.
---
## 보고서
프레임워크는 JSON, HTML, TXT 출력을 지원합니다. 작업의 대상과 보존 요구 사항에 맞는 형식을 선택하세요.
### JSON 보고서
JSON은 자동화, 보관, 평가 파이프라인으로의 수집에 적합합니다. 대표적인 보고서 구조는 아래에 나와 있습니다. 정확한 필드는 버전과 모드에 따라 달라질 수 있습니다.```json
{
"scan_info": {
"target": "https://authorized.example/phpmyadmin",
"timestamp": "2024-01-15T10:30:00Z",
"mode": "verify",
"scanner": "CVE-2020-5504 Security Assessment Tool v1.2",
"author": "Sudeepa Wanigarathna"
},
"fingerprint": {
"is_phpmyadmin": true,
"version": "5.0.0",
"confidence": "CONFIRMED"
},
"verification": {
"vulnerable": true,
"confidence": "CONFIRMED",
"status": "VULNERABLE_CONFIRMED"
},
"authentication": {
"authenticated": true,
"user": "authorized-test-user",
"score": 8
},
"extracted_data": {
"databases": ["information_schema", "mysql", "test"]
}
}
HTML 출력은 사람이 검토하도록 설계되었습니다. 스타일이 적용된 섹션, 상태 표시기, 증거 요약, 메타데이터 및 인쇄 가능한 레이아웃을 포함할 수 있습니다. 생성된 보고서는 접근이 통제된 위치에 저장하십시오.
TXT 출력은 터미널 검토, 로그 수집, 티켓 첨부 파일 및 복잡한 서식이 필요하지 않은 환경에서 유용합니다.
보고서를 공유하기 전에 계약에 따라 허용된 정보만 포함되어 있는지 확인하십시오. URL, 사용자 이름, 데이터베이스 이름, 레코드 값, 쿠키, 토큰, 요청 헤더 및 디버그 출력에서 비밀 또는 개인 데이터를 검토하십시오. 발견 사항을 뒷받침하는 데 필요하지 않은 민감한 콘텐츠는 편집하거나 제거하십시오.
이 프로젝트는 단계별 평가 파이프라인으로 구성되어 있습니다:``` Target │ ├── Fingerprinting │ ├── Version detection │ └── Path discovery │ ├── Vulnerability checks │ ├── Controlled verification │ └── Confidence analysis │ ├── Authentication │ ├── CSRF token extraction │ ├── Multi-signal validation │ └── Session management │ ├── Authorized assessment │ ├── Database enumeration │ ├── Table extraction │ └── Scoped data requests │ └── Reporting ├── JSON ├── HTML └── TXT
### 응답 분석 계층
응답 분석 계층은 HTTP 응답 및 애플리케이션 동작 해석을 중앙화합니다. 다음의 개념적 인터페이스는 의도된 책임을 보여줍니다:```
ResponseAnalyzer
├── status_code( )
├── content_type()
├── authenticated()
├── error_detected()
├── verification_result()
└── extract_metadata()
이러한 검사를 중앙화하면 핑거프린팅, 인증, 검증, 보고 단계를 일관되게 유지하는 데 도움이 됩니다.
Login request │ ▼ CSRF token extraction │ ▼ Login submission │ ▼ Cookie and session validation │ ▼ Authenticated-page access test │ ▼ Expected-content verification │ ▼ Authenticated result
## 문제 해결
### SSL 인증서 오류
통제된 테스트 환경에서 내부 또는 자체 서명 인증서를 사용하는 경우, 위험을 이해하고 해당 작업이 허용할 때만 프로젝트의 TLS 옵션을 사용하십시오:```bash
python exploit.py \
--url https://authorized.example/phpmyadmin \
--mode detect \
--no-verify-ssl
바람직한 해결 방법은 검증을 비활성화하는 대신 인증서 체인 또는 신뢰 구성을 수정하는 것입니다.
라우팅, DNS, 프록시 구성 및 대상 가용성을 확인한 후에만 시간 초과를 늘리십시오:```bash
python exploit.py
--url https://authorized.example/phpmyadmin
--mode detect
--timeout 30
Use conservative request rates and delays to avoid placing unnecessary load on the target.
### Authentication failures
Confirm that the test account is valid, that the account is allowed to access the target, and that the supplied URL points to the correct phpMyAdmin installation. Review verbose output for CSRF, cookie, redirect, and content-type indicators without sharing credentials or session values.
### Missing `rich` package
Install the project's dependencies inside the active virtual environment:```bash
python -m pip install -r requirements.txt
현재 버전에서 지원하는 경우, 최소한의 터미널 경험을 위해 리치 포맷팅을 비활성화하세요:```bash
python exploit.py
--url https://authorized.example/phpmyadmin
--mode detect
--no-rich
### Linux 또는 macOS에서 권한 거부됨
런처를 실행 가능하게 만드십시오:```bash
chmod +x start.sh exploit.py
예상치 못한 결과는 중단하고 조사해야 할 이유로 간주하십시오. 대상 버전, 리버스 프록시 동작, 인증 상태, 요청/응답 증거, 구성된 제한, 재시도 동작, 그리고 다른 보안 제어가 응답을 변경했는지 여부를 확인하십시오. 원하는 결과를 얻기 위해 단순히 영향력이 큰 모드를 반복적으로 재실행하지 마십시오.
공식 phpMyAdmin 권고는 영향을 받는 설치를 다음과 같이 업그레이드할 것을 권장합니다:[1]
| 영향받는 계열 | 영향받는 버전 | 권장 조치 |
|---|---|---|
| phpMyAdmin 4.x | 4.9.4 미만 | 4.9.4 이상으로 업그레이드. |
| phpMyAdmin 5.x | 5.0.0 | 5.0.1 이상으로 업그레이드. |
조직은 또한 MySQL 계정 권한을 검토하고, 관리 인터페이스를 제한하고, 강력한 인증을 시행하고, 네트워크 노출을 제한하고, 관리 활동을 모니터링하고, 공급업체의 최신 릴리스 및 보안 지침을 따라야 합니다. 이러한 조치는 패치 적용을 보완하는 것이지 대체하지는 않습니다.
수정 후 승인된 환경에서 검증을 반복하고 설치된 버전, 배포 경로, 테스트 날짜 및 결과를 보여주는 증거를 보관하십시오. 권한 부여에 사후 수정 검증이 명시적으로 포함되지 않는 한 프로덕션 시스템을 테스트하지 마십시오.
git clone https://github.com/CerberusMrXi/phpMyAdmin-CVE-2020-5504-Exploit cd phpMyAdmin-CVE-2020-5504-Exploit
python3 -m venv .venv source .venv/bin/activate python -m pip install --upgrade pip python -m pip install -r requirements-dev.txt
Windows에서는 다음 명령으로 환경을 활성화하세요:```
.\.venv\Scripts\Activate.ps1
python -m pytest tests/
### 코드 품질 기대사항
기여는 PEP 8을 따라야 하며, 가능한 경우 타입 힌트를 사용하고, 설명적인 docstring을 포함하며, 명확한 오류 처리를 유지하고, 자격 증명, 쿠키, 토큰 또는 불필요한 추출 데이터를 로깅하지 않아야 합니다. 평가 범위, 요청 동작, 인증 또는 보고에 영향을 미치는 변경 사항에는 테스트와 문서 업데이트가 포함되어야 합니다.
### 제안된 저장소 구조```
.
├── exploit.py
├── requirements.txt
├── requirements-dev.txt
├── config.yaml.example
├── start.sh
├── start.bat
├── start.ps1
├── tests/
├── docs/
│ └── images/
└── reports/
생성된 보고서, 자격 증명, 세션 아티팩트 또는 대상별 데이터를 커밋하지 마십시오. 적절한 경우 .gitignore에 추가하십시오.
신뢰성, 문서, 테스트 커버리지, 접근성 또는 안전한 평가 워크플로를 개선하는 기여를 환영합니다.
저장소를 포크합니다.
feature/improved-fingerprint-parser와 같은 명확한 목적의 브랜치를 생성합니다.
문제를 해결하는 가장 작고 일관된 변경을 수행합니다.
테스트와 문서를 추가하거나 업데이트합니다.
로컬에서 테스트 스위트를 실행합니다.
명확한 메시지와 함께 커밋합니다.
브랜치를 푸시하고 변경 사항, 수행된 테스트, 보안 또는 호환성 영향에 대해 설명하는 풀 리퀘스트를 엽니다.```bash git checkout -b feature/improved-fingerprint-parser git add . git commit -m "Improve fingerprint result handling" git push origin feature/improved-fingerprint-parser
권한이 없는 대상을 추가하거나, 보호 장치를 약화시키거나, 실제 자격 증명을 노출하거나, 라이브 시스템 데이터를 포함하거나, 문서화된 범위를 벗어난 테스트를 권장하는 변경 사항을 제출하지 마십시오.
---
## 변경 로그
### 버전 1.2
- `FingerprintResult` details-attribute 오류를 수정했습니다.
- rich 터미널 포맷을 사용할 수 없을 때 대체 경로를 추가했습니다.
- 버전 탐지 패턴을 개선했습니다.
- 워크플로 전반의 오류 처리를 강화했습니다.
- 통제된 테스트를 위한 TLS 검증 제어를 추가했습니다.
- 크로스 플랫폼 호환성을 개선했습니다.
### 버전 1.1
- 전용 핑거프린팅 모듈을 추가했습니다.
- 안전한 검증 모드를 구현했습니다.
- 다중 신호 인증 검증을 추가했습니다.
- 포괄적인 보고서 생성을 추가했습니다.
- rich 터미널 인터페이스를 통합했습니다.
### 버전 1.0
- 최초 릴리스.
- 기본 SQL injection 평가 기능을 추가했습니다.
- 데이터베이스 열거 기능을 추가했습니다.
- JSON 출력을 추가했습니다.
---
## 라이선스
이 프로젝트는 MIT 라이선스로 제공됩니다. 전체 텍스트는 [LICENSE](https://github.com/cerberusmrxi/phpmyadmin-cve-2020-5504-exploit/blob/HEAD/LICENSE) 파일을 참조하십시오.```
MIT License
Copyright (c) 2024 Sudeepa Wanigarathna
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
이 소프트웨어는 보증 없이 제공됩니다. 프로젝트를 재배포하기 전에 전체 LICENSE 파일을 검토하십시오.
이 프로젝트는 보안 권고와 패치를 제공한 phpMyAdmin 팀, 취약점을 보고한 연구자들, 그리고 프레임워크에서 사용하는 라이브러리를 유지 관리하는 오픈소스 관리자들에게 감사를 표합니다.
| 채널 | 링크 |
|---|---|
| 저자 | Sudeepa Wanigarathna |
| GitHub 프로필 | @sudeepawanigarathna |
이 프로젝트에 대한 취약점 보고 시 민감한 세부 정보를 공개적으로 게시하지 마십시오. 구성된 후에는 비공개 보안 연락처 또는 저장소에 문서화된 보안 보고 절차를 사용하십시오.
https://www.phpmyadmin.net/security/PMASA-2020-1/ "phpMyAdmin PMASA-2020-1 보안 권고"
https://nvd.nist.gov/vuln/detail/CVE-2020-5504 "NIST 국가 취약점 데이터베이스: CVE-2020-5504"
책임 있는 공개를 통한 보안.
| 영역 | 기능 | 설명 |
|---|
| 탐지 | 자동 핑거프린팅 | phpMyAdmin 배포 환경을 식별하고 버전 관련 지표를 수집합니다. |
| 검증 | 취약점 확인 | 신뢰도 중심 결과 처리를 통해 통제된 점검을 수행합니다. |
| 워크플로우 | 여러 운영 모드 | 탐지, 검증, 연구, 예행연습 워크플로우를 지원합니다. |
| 세션 처리 | CSRF 토큰 관리 | 애플리케이션 흐름에 필요한 CSRF 관련 값을 추출하고 관리합니다. |
| 인증 | 다중 신호 검증 | 여러 지표를 사용하여 잘못된 인증 결과를 줄입니다. |
| 평가 | 데이터베이스 열거 | 공인된 데이터베이스, 테이블, 열 및 선택된 데이터의 열거를 지원합니다. |
| 인젝션 연구 | 블라인드 기법 | 구현에서 활성화된 경우 불리언 기반 및 시간 기반 연구 워크플로우를 지원합니다. |
| 보고 | JSON, HTML, TXT | 다양한 대상을 위해 구조화되고 스타일이 적용된 텍스트 출력을 생성합니다. |
| 안정성 | 재시도 및 백오프 | 구성 가능한 동작으로 일시적인 요청을 재시도합니다. |
| 통합 | 프록시 지원 | Burp Suite 또는 다른 HTTP 인터셉션 프록시와 함께 사용할 수 있습니다. |
| 사용성 | 풍부한 터미널 인터페이스 | 색상 구분 출력, 진행 표시기, 읽기 쉬운 상태 메시지를 제공합니다. |
| 진단 | 상세 로깅 | 공인된 문제 해결을 위한 추가 진단 정보를 노출합니다. |
| 모드 | 목적 | 예상 영향 | 권장 사용 |
|---|
detect | 애플리케이션을 식별하고 버전 지표를 확인합니다. | 없음 또는 최소 | 승인된 범위 내 초기 정찰. |
verify | 통제된 검사를 통해 대상이 취약한지 테스트합니다. | 낮음 | 승인된 평가 중 확인. |
research | 광범위한 평가와 승인된 열거를 수행합니다. | 높음 | 명시적 승인을 받은 전용 랩 또는 작업. |
dry-run | 침습적 작업 없이 워크플로 동작을 시뮬레이션합니다. | 없음 | 구성 및 명령 검증. |
| 옵션 | 설명 | 예시 |
|---|
-u, --url | 승인된 phpMyAdmin 기본 URL. | --url https://authorized.example/phpmyadmin |
-m, --mode | detect, verify 또는 research를 선택합니다. | --mode verify |
--dry-run | 침습적 작업 없이 워크플로를 시뮬레이션합니다. | --dry-run |
--username | 승인된 테스트 계정의 사용자 이름. | --username "$PMADB_USERNAME" |
--password | 승인된 테스트 계정의 비밀번호. | --password "$PMADB_PASSWORD" |
-p, --proxy | HTTP 프록시 URL. | --proxy http://127.0.0.1:8080 |
-f, --format | json, html 또는 txt와 같은 보고서 형식. | --format html |
-o, --output | 출력 파일 경로. | --output report.html |
-d, --database | 지원되는 경우 활동을 명명된 데이터베이스로 제한합니다. | --database target_database |
-t, --timeout | 요청 제한 시간(초). | --timeout 30 |
--max-databases | 열거할 최대 데이터베이스 수. | --max-databases 20 |
--max-tables | 열거할 최대 테이블 수. | --max-tables 50 |
--max-columns | 열거할 최대 열 수. | --max-columns 50 |
--max-rows | 지원되는 경우 요청할 최대 행 수. | --max-rows 100 |
-v, --verbose | 진단 출력을 활성화합니다. | --verbose |
--no-verify-ssl | 통제된 테스트 전용으로 TLS 인증서 검증을 비활성화합니다. | --no-verify-ssl |
--no-rich | 리치 터미널 형식을 비활성화합니다. | --no-rich |
| 이슈 트래커 | 저장소 이슈 |
| 이메일 | [email protected] |