Iriton's log
[Dreamhack/Wargame]Lv.1 Carve party write-up 본문
문제 파일을 다운로드 하면 html 파일이 있다.
vscode로 열어도 되고 메모장으로 열어도 되는데
난 그냥 메모장으로 열었다.
문제를 풀다 보니 두 가지의 풀이법이 있어서 두 가지 다 작성하려고 한다.
1. 코드 변환 (While문)
메모장을 열면 엄청 긴 코드가 보이지만, 이 중에서 필요한 건 클릭할 때마다 카운트 되게 하는 함수이다.
10,000번 클릭할 수 없으니 코드를 수정해 줘야 하기 때문이다.
해당 코드는 아래와 같다.
코드를 대충 읽고
'어 그럼 카운트를 1씩 증가하지 말고 9999번씩 증가 시키면 되겠네'
라는 생각을 했다.
counter += 9999로 바꾼 뒤 실행하면
flag가 암호화 되어서 출력된다.
그럼 반복문을 통해서 내부적으로 매크로를 돌려야 할 것이라 생각했다.
원래 코드에 while문을 한 줄만 추가하면 한 번의 클릭으로 counter가 10000이 될 때까지 반복할 수 있다.
더보기
$(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)에서 =을 빼면 호박이 웃기만 하고 flag를 띄워주지 않는다.
드디어 암호화 되지 않은 flag 값을 얻을 수 있었다.
호박이 웃지 않는 이유는 궁금했지만 별로 상관 없어서 skip
2. Console 창 활용
크롬 개발자모드 Console창에서 반복문을 수행해도 풀이가 가능할 것이라 생각했다.
반복을 수행할 변수를 선언한 후 click()함수를 반복하게 만들면 된다.
(1번 방법에서는 <=10000을 했어야 했는데 여기선 <10000으로 해도 되는 이유를 잘 모르겠다...)
아무튼 해결!
'WebHacking > WarGame' 카테고리의 다른 글
[Dreamhack/Wargame] Lv.1 file-download-1 (0) | 2023.04.04 |
---|---|
[Dreamhack/Wargame] Lv.1 devtools-sources (0) | 2023.03.30 |
[Webhacking.kr] old-20 write-up (0) | 2023.03.30 |
[Webhacking.kr] old-17 write-up (0) | 2023.03.29 |
[Webhacking.kr] old-14 write-up (0) | 2023.03.28 |
Comments