문제 파일을 다운받아서 html을 들어가면 이런 화면이 보일 것이다.

이 반복문을 통해서 내가 한번 터치하면 0이 되게할 수 있다.
$(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();
});
});
코드 설명 : 이 코드에서 while (counter < 10000) 루프는 counter가 10000 미만일 때마다 계속 반복됩니다. 하지만 counter는 1씩 증가되므로, 한 번 클릭 시 counter 값이 1씩 증가하여 10000에 도달할 때까지 반복됩니다. 실제로는 클릭을 한 번 할 때마다 counter가 1씩 증가하고, 이를 10000까지 반복하는 방식이므로 사용자가 반복문을 계속 실행하게 만드는 문제점을 이용한 것입니다.
위의 코드를 콘솔에 넣으면 한번 클릭시 반복문이 실행되고 플래그를 얻을 수 있다.


'Dreamhack > 웹해킹' 카테고리의 다른 글
| Command Injection (0) | 2025.04.01 |
|---|---|
| Blind Command Injection (0) | 2025.04.01 |
| (드림핵) SSRF (0) | 2025.04.01 |
| File Download Vulnerability (0) | 2025.03.24 |
| File Upload Vulnerability (0) | 2025.03.24 |