토큰기반 인증에서 bearer 란?
JWT, OAuth
XFF는 HTTP Header 중 하나로 HTTP 프록시나 로드 밸런서를 통해 웹 서버에 접속하는 클라이언트의 원 IP 주소를 식별하는 사실상의 표준 헤더다
웹서버나 WAS 앞쪽에 Load Balancer 혹은 Proxy Server 등이 위치하게 된다면 서버 접근 로그에는 Client IP가 아닌 Load Balancer 혹은 Proxy Server의 IP 주소가 기록됩니다.
이때 웹 어플리케이션에서 X-Forwarded-For 헤더를 이용하면 Client IP를 서버 접근 로그에
남길 수 있습니다.
X-Forwarded-For 요청 헤더는 HTTP 또는 HTTPS 로드 밸런서를 사용할 때 클라이언트의 IP 주소를 식별하는데 도움이 되고,
로드 밸런서는 클라이언트와 서버 간의 트래픽을 가로 채기 때문에 서버 액세스 로그에는 로드 균형 조정기의 IP 주소만 포함됩니다.
클라이언트의 IP 주소를 보려면 X-Forwarded-For 요청 헤더를 사용하면 됩니다.
#ex)IP 주소가 203.0.113.7인 클라이언트에 대한 X-Forwarded-For 요청 헤더
X-Forwarded-For : 203.0.113.7
#ex)IPv6 주소가 2001:DB8: :21f:5bff:febf:ce22:8a2e 인 클라이언트에 대한 X-Forwarded-For 요청 헤더.
X-Forwarded-For: 2001:DB8::21f:5bff:febf:ce22:8a2e
스크립트 출처 : https://www.hahwul.com/2021/09/11/zap-fuzzer-and-scripting/#random-ip-in-x-forwarded-for
Fuzzing 시 X-Forwarded-For 헤더를 랜덤한 IP로 지정하여 Hop-by-Hop 구조에서 IP 기반 차단 정책이 뒤쪽 App 서버에 있는 경우 차단을 우회하면서 테스트 가능
function processMessage(utils, message) {
// 랜덤으로 IP 포맷의 값을 생성합니다.
var random_ip = Math.floor(Math.random() * 254)+ "." + Math.floor(Math.random() * 254) + "." + Math.floor(Math.random() * 254) + "." + Math.floor(Math.random() * 254);
// Fuzzing의 Request가 전송되기 전 X-Forwarded-For 헤더에 추가합니다.
message.getRequestHeader().setHeader("X-Forwarded-For", random_ip);
}
function processResult(utils, fuzzResult){
return true;
}
function getRequiredParamsNames(){
return [];
}
function getOptionalParamsNames(){
return [];
}
추가 작성중