완료됨
외부 도메인으로 접속하는 방법이 왜 안될까요?
프록시에서 host3.dreamhack.games
나 해당 도메인의 ip 주소인 23.81.42.210
로 요청을 보내면 isPrivateIP를 우회할 수 있을 것 같은데 안되는 이유가 궁금합니다.
function isPrivateIP(ip) {
var s = ip.split('.').map(x => parseInt(x, 10));
return s[0] === 10 || // 10.0.0.0/8
(s[0] === 172 && s[1] >= 16 && s[1] < 32) || // 172.16.0.0/12
(s[0] === 192 && s[1] === 168) || // 192.168.0.0/16
s[0] === 127 || // 127.0.0.0/8
ip === '0.0.0.0'; // 0.0.0.0/32
}
async function isSafeHost(host) {
if (!/^[A-Za-z0-9.]+$/.test(host)) {
return false;
}
try {
const address = await dns.resolve4(host);
return address.every(addr => !isPrivateIP(addr));
} catch {
return false;
}
}
#ssrf
작성자 정보
답변
1
hoppi_
대표 업적 없음
안녕하세요 qpal님!
문제를 이미 해결하셨는데 어떤 부분에서 안되는 것인지 구체적으로 말씀해주시면 답변드리겠습니다!