
🚫 보안 연구자를 위한 고급 도구로, 스마트 기술과 적응형 요청 조작을 통해 403/40X 제한을 우회합니다. 빠름. 정밀함. 효과적.
nomore403은 401, 403 및 관련 응답을 중심으로 HTTP 접근 제어 우회 및 파서 불일치를 테스트하기 위한 명령줄 도구입니다.
이 도구는 실무 웹 보안 작업(버그 바운티, 침투 테스트, 보안 검토, 접근 제어 규칙 회귀 테스트)을 위해 설계되었습니다. 광범위한 요청 변형 세트를 자동화하고, 기준선을 캡처하며, 일반적인 오탐지를 필터링하고, 의미 있는 우회 가능성이 가장 높은 응답을 강조합니다.
대상 URL이 주어지면 nomore403은:
curl 명령어도 포함됩니다.이 도구는 자체적으로 "인증을 깨뜨리지" 않습니다. 프런트엔드, 프록시, WAF, CDN, 애플리케이션 라우터 및 백엔드가 동일한 요청을 어떻게 다르게 해석하는지 찾는 데 도움을 줍니다.
404 또는 상위 경로 응답으로 인한 오탐지를 줄이기 위한 자동 보정net/http가 정규화하는 요청 형식을 위한 원시 HTTP 지원git clone https://github.com/devploit/nomore403
cd nomore403
go build
go install github.com/devploit/nomore403@latest
go install로 설치하면 payloads/ 디렉토리가 자동으로 설치되지 않습니다. 저장소를 클론하고 필요시 -f 플래그로 해당 디렉토리를 가리키십시오.
curl이 PATH에 있어야 함:
http-versionshttp-parserabsolute-uri대부분의 기법은 curl 없이도 작동합니다.
기본 스캔:
./nomore403 -u https://target.tld/admin
프록시 사용 및 상세 출력:
./nomore403 -u https://target.tld/admin -x http://127.0.0.1:8080 -v
선택한 기법만 실행:
./nomore403 -u https://target.tld/admin -k headers,absolute-uri,raw-desync
표준 입력에서 대상 읽기:
cat urls.txt | ./nomore403
Burp 스타일 요청 파일 사용:
./nomore403 --request-file request.txt
기계 판독 가능 출력:
./nomore403 -u https://target.tld/admin --jsonl -o findings.jsonl
target: https://target.tld/admin method: GET frontend: AWS ELB/ALB payloads: payloads
calib: 404 | 1245b | ±50 | frag 703b
BASELINE
default 403 520 bytes https://target.tld/admin
FINDINGS
hdr-ip 100! 200 2048 bytes X-Original-URL: /
abs-uri 26. 403 236 bytes request-target: https://target.tld/admin
http 18. 400 122 bytes HTTP/2
no visible results: 17 techniques
━━━━━━━━━━━━━━ LIKELY BYPASS ━━━━━━━━━━━━━━━━━
[!100 HIGH] Header injection (IP) 403=>200 2048b
why: status 403->200, len Δ1528, body changed, type changed
item: X-Original-URL: /
curl: curl -i -sS -k -H 'User-Agent: nomore403' -H 'X-Original-URL: /' 'https://target.tld/admin'
각 보이는 줄은 기준선과 충분히 달라 필터링을 통과한 응답입니다.
일반적인 필드:
hdr-ip, abs-uri, 또는 parser18., 61+, 또는 100!최종 요약은 기준선에서 결과로의 전이를 보여줍니다:
403=>200은 일반적으로 즉각적인 주의가 필요함403=>302는 흥미로울 수 있지만, 여전히 인증 장벽으로 되돌아갈 수 있음403->400 또는 403->404는 일반적으로 우회보다는 파서 또는 라우팅 차이를 나타냄실행이 끝나면 nomore403은 다음을 출력합니다:
LIKELY BYPASS
curl 포함INTERESTING VARIATIONS
no visible results
점수는 휴리스틱입니다. 결과의 우선순위를 정하기 위한 것이지 공격성을 증명하기 위한 것이 아닙니다.
도구는 일반적으로 다음을 높게 평가합니다:
2xx로의 전이3xx로의 전이Location 변화도구는 일반적으로 다음을 낮게 평가합니다:
400 및 404 케이스 (응답도 크게 변경되지 않는 한)권장 해석:
HIGH: 실행 가능성이 높음; 먼저 검토MED: 가능성 있는 후보; 일반적으로 수동 재생 가치 있음LOW: 파서 차이, 라우팅 이상 또는 낮은 신뢰도 동작자동 보정은 비상세 모드에서 기본적으로 활성화됩니다.
여러 존재하지 않는 경로에 요청을 보내 대상의 기본 오류 동작에 대한 기준선을 구축합니다. 또한 조각 기반 보정 요청을 수행하여 조각이 제거된 경로로 인한 오탐지를 줄입니다.
다음 플래그로 제어할 수 있습니다:
--no-calibrate
--strict-calibrate
Location, Content-Type, Server 같은 주요 헤더도 비교도구는 -k를 지정하지 않으면 기본적으로 모든 기법을 실행합니다.
verbs
payloads/httpmethods의 대체 HTTP 메서드verbs-case
method-override
headers
hop-by-hop
Connection을 사용한 홉별 제거 트릭header-confusion
X-Original-URL과 같은 재작성 및 경로 재정의 헤더host-override
forwarded-trust
Forwarded, Client-IP, Cluster-Client-IP 및 관련 신뢰 체인proto-confusion
X-Forwarded-Proto, X-Forwarded-Port 및 관련 스킴 힌트endpaths
payloads/endpaths의 접미사 및 경로 끝 변형midpaths
payloads/midpaths의 경로 삽입 및 탐색 스타일 변형double-encoding
unicode
%uXXXX 및 과도하게 긴 UTF-8 경로 변형path-case
path-normalization
suffix-tricks
.json, .css, ;index.html과 같은 접미사 및 확장자 트릭, 형식 스타일 쿼리 전환http-versions
HTTP/1.0 및 HTTP/2에서 비교http-parser
http-versions와 별도로 클라이언트/프런트엔드 파서 차이를 노출하기 위해 의도적으로 최소한의 curl 요청 전송absolute-uri
curl --request-target을 통해 절대 형식 요청 대상 사용raw-duplicates
raw-authority
raw-desync
일부 기법은 Go의 net/http 클라이언트가 제공하지 않는 와이어 수준 제어가 필요합니다. 이러한 기법은 원시 HTTP 엔진을 사용합니다.
현재 원시 기법에는 다음이 포함됩니다:
raw-duplicatesraw-authorityraw-desync%uXXXX 유니코드 경로 요청참고:
도구는 다음과 같은 프런트엔드 힌트를 추론할 수 있습니다:
이러한 힌트는 기법 순서 및 출력 컨텍스트를 개선하는 데 사용됩니다.
중요:
-k를 사용하지 않으면 도구는 여전히 전체 기본 기법 세트를 실행합니다.최종 요약에서 높은 가치의 결과가 자동으로 재생됩니다.
재생 출력은 다음 질문에 답하는 데 도움이 됩니다:
최종 요약에는 다음이 포함됩니다:
1/1 또는 2/2 matched on replaycurl 명령어./nomore403 -u https://target.tld/admin
./nomore403 -u targets.txt
cat targets.txt | ./nomore403
./nomore403 --request-file request.txt
요청 파일은 Burp 또는 다른 프록시에서 캡처된 트래픽을 재생할 때 유용합니다.
--payload-position을 사용하면 내장된 endpath 및 midpath 변형 로직 대신 명시적인 마커에 페이로드를 삽입할 수 있습니다.
예:
./nomore403 -u 'https://target.tld/§100§/admin/§200§' -p §
./nomore403 -u https://target.tld/admin
./nomore403 -u https://target.tld/admin -x http://127.0.0.1:8080 -v
./nomore403 -u https://target.tld/admin -k absolute-uri,raw-duplicates,raw-authority,raw-desync
./nomore403 -u https://target.tld/admin -i 10.0.0.5
./nomore403 -u https://target.tld/admin --jsonl -o findings.jsonl
최신 CLI 전체 목록은 ./nomore403 --help를 실행하십시오.
주요 플래그:
-u, --uri
-k, --technique
-x, --proxy
-H, --header
-i, --bypass-ip
-v, --verbose
--json
--jsonl
--no-calibrate
--strict-calibrate
--retry-count
기본 모드는 대화형 검토 및 분류에 최적화되어 있습니다.
구조화된 단일 문서를 위해 --json을 사용하십시오.
다음과 같은 경우 --jsonl을 사용하십시오:
payloads/ 디렉토리에는 여러 기법에서 사용되는 목록이 포함되어 있습니다.
현재 파일:
httpmethodsheadersipssimpleheadersendpathsmidpathsuseragents이 파일을 대상이나 워크플로에 맞게 사용자 정의할 수 있습니다.
curl 기반 기법은 PATH에 curl이 필요합니다.이 도구는 테스트할 권한이 있는 시스템에서만 사용하십시오.
저자와 기여자는 오용에 대해 책임지지 않습니다. 귀하는 관련 법률, 프로그램 규칙 및 조직 정책을 준수할 책임이 있습니다.
기여를 환영합니다.
유용한 기여 영역:
기법을 기여하기 전에 다음을 선호합니다:
이 프로젝트는 MIT 라이선스에 따라 출시됩니다. LICENSE를 참조하십시오.
ip-encoding
payload-position
--retry-backoff-ms
--host-delay
--top-score-min
LIKELY BYPASS의 최소 점수--variation-score-min
INTERESTING VARIATIONS의 최소 점수--top
0은 요약 비활성화