<문제>
할로윈 파티를 기념하기 위해 호박을 준비했습니다! 호박을 10000번 클릭하고 플래그를 획득하세요!
서버를 생성해서 링크에 접속해서 푸는 문제가 아니라 그냥 html 파일이 주어진다.
그 말은 정해진 플래그가 어딘가에 숨어있다는 뜻인데 html 파일을 읽어봐도 생전 처음보는 함수가 많아서
플래그가 어디서 어떤 변수에 저장되서 나오게 되는건지 모르겠다
웹 브라우저에서 개발자 도구에서 Ctrl+Shift+f로 전체 검색 DH를 해봐도 안 나온다.
$(function() {
$('#jack-target').click(function () {
counter += 1;
if (counter <= 10000 && counter % 100 == 0) {
for (var i = 0; i < pumpkin.length; i++) {
pumpkin[i] ^= pie;
pie = ((pie ^ 0xff) + (i * 10)) & 0xff;
}
}
make();
});
});
여기서 만번 클릭을 하면 make함수로 나오는 거 같은데 이게 또 그냥 counter 값을 10000000으로 바꿔봐도 안된다.
안되는 이유를 분석해보니까 make 함수 안에서 counter가 어떤 범위에 있을 때마다 특정 변수의 값을 바꿔서
마지막에 counter가 10000을 넘어갔을 때 특정 변수의 값들이 정해진 값이어야 제대로 1씩 증가해서 10000이 됐다고 판단할 수 있게 만들어 놓은 것 같다.
make 함수를 더 자세히 분석해서 해볼까 생각했지만 너무 복잡해 보여서 포기했고
counter를 1씩 자동으로 증가시키는 방법을 생각했다.
$(function() {
$('#jack-target').click(function () {
while(counter<=10000){
counter += 1;
if (counter <= 10000 && counter % 100 == 0) {
for (var i = 0; i < pumpkin.length; i++) {
pumpkin[i] ^= pie;
pie = ((pie ^ 0xff) + (i * 10)) & 0xff;
}
}
make();
}
});
});
코드를 이렇게 수정했다. (처음에 counter<10000으로 했는데 안되서 다른 방법을 써야 하나 고민했다.)
한번만 클릭하면 플래그가 나오게 된다.
'웹해킹' 카테고리의 다른 글
XSS Filtering Bypass (0) | 2023.11.20 |
---|---|
드림핵 blind-command 롸업 (0) | 2023.11.05 |
드림핵 web-ssrf 롸업 (0) | 2023.11.05 |
ServerSide: SSRF (0) | 2023.11.05 |
드림핵 file-download-1 롸업 (0) | 2023.11.05 |