오늘은 webhacking.kr의 [old-32] 문제를 풀어보았다.

사이트를 들어가보니 투표를 많이 받은 순서로 정렬이 되어 있다.

각 항목의 onclick 이벤트에서 '?hit=닉네임' 형태의 URL이 사용되는 것을 알 수 있다.

계정당 한번밖에 투표를 못하는 제한이 걸려있어서 'vote_check=ok' 쿠키을 제거해야한다.

fetch를 이용해 내 닉네임의 hit 요청을 반복적으로 보내서 100번 투표를 완성한다.

새로고침하면 1등으로 바뀌어있다.

끝~
Lord of SQLInjection 3번
문제

풀이

조건 & 제약사항
preg_match 함수를 통해 ' , " , ` 의 사용이 차단되어있음
id가 admin이여야
아이디어
1. id='guest'가 고정되어있음 -> and no = 뒤에 false조건을 넣어 guest가 조회되지 않도록해야함
2. or 연산자를 사용하여 id = 'admin' 조건을 추가하기
3. '를 사용할 수 없어서 문자열 'admin을 다른 방식으로 표현해야함 -> 16진수로 변환하기
4. (id가 guest이고 no가 0인 데이터) 또는 (id가 admin인 데이터) 인 쿼리를 입력한다
문제 풀기
1. 문자열 반환
a -> 0x61
d -> 0x64
m -> 0x6d
i -> 0x69
n -> 0x6e
-> admin은 0x61646d696e 이다.
2. no = 0
계정의 번호를 0이나 다른 값을 입력한다( 보통 guest 번호가 0이 아니어서 조건을 틀리게 하기위해서 0을 넣는다)
3. 최종 url
?no=0 or id=0x61646d696e
5. 문제 해결 완료

old-20 문제풀이

입력값 nickname, comment, captcha를 제한 시간 2초 안에 입력해야 하는 문제다.

f12 elements를 확인하면
captcha는 사용자가 입력하는 칸
captcha는 정답이 들어있는 버튼 (value 값)
임을 알 수 있다.
>> 콘솔 자동 입력 코드
let f = document.querySelector("form"); // name=id인 input 찾기, 값 "test" 넣기
f.querySelector("input[name=id]").value = "test";
f.querySelector("input[name=cmt]").value = "test";
let answer = document.querySelector("input[name=captcha_]").value;// captcha_ 버튼 선택, 그 안의 value 읽기
f.querySelector("input[name=captcha]").value = answer; f.submit();// 실제 입력칸 (captcha)에 아까 가져온 정답 넣기

'4-1. 2026-1 심화 스터디 > 워게임 도장깨기' 카테고리의 다른 글
| [6주차] 워게임 도장깨기_포너블 (0) | 2026.05.22 |
|---|---|
| [5주차] 워게임도장깨기_리버싱 (0) | 2026.05.08 |
| [3주차] 워게임 도장깨기_시스템 해킹 (0) | 2026.04.02 |
| [2주차] 워게임 도장깨기_리버싱 (0) | 2026.03.27 |
| [1주차] 워게임 도장깨기_웹 해킹 (0) | 2026.03.20 |