webhacking.kr 32번 write-up

2022. 12. 4. 00:33·웹/웹 해킹 문제

32번 문제에 들어가면 위와 같이 화면이 구성된다. 

1654번째까지 순서가 있으며 rank, name, hit로 구성되어있다.

개발자도구(f12)로 소스코드를 보기 이전에 무심결에 텍스트를 눌러보았더니 

 화면이 새로고침되었다.

텍스트를 한번더 눌렀더니 위와 같이 이미 투표했다며 alert를 한다. 

제가 아까 누른 부분을 보니 hit가 1증가했다.

지 그러면 개발자도구로 소스코드를 살펴보자

코드를 보니  테이블관련 태그(tr,td,table)를 사용하였고 

<tr onmouseover 로 마우스 포인터가 요소위에 있을때 백그라운드가 회색 

onmouseout으로 인해 요소바깥에 있을때 백그라운드가 검은색이 되도록 코드가 짜여있다.

onclick=으로인해 tr 태그 부분을 클릭하면 location.href - url 로 인해 url로 이동된다. 

 

url 이 ?hit=a 형식인것으로 보아 get방식으로 해당 hit 값들을 넘기고 있다. 

해당 tr태그를 누르면 hit값을 get 방식으로 넘겨 hit 부분이 1증가하는 구조이다. 

cookie editor를 확인해보니 vote_check 쿠키가 있으며 ok로 value가 설정되어져있다.

저 쿠기 값을 통해서 이미 투표했다고 alert가 되는것 같다.

 

그러면 여기서 든 생각은 저 hit를 100까지 꽉채우거나 

1등 rank를 탈환하면 될 것 같다라는 생각이 들었다.

 

처음생각한 문제해결로는 cookie editor를 이용한 수작업이었다. 

이 도구의 기능중에 block cookie라는 기능이 있다.

위 그림의 표시를 누르면 

위와 같이 vote_check와 ok를 필터링할 수 있다.

2개를 필터링 후 내 사이트계정을 클릭하면 alert가 안되며 hit가 늘어나는것을 볼 수 있다.

여러번 클릭하여 hit가 100이 될때까지 눌러보자

 

여러번 눌러 hit 100을 달성하면

문제가 풀린다. 

다른 방법으로는 수작업이 아닌 script를 작성하여 문제를 푸는 것이다.

python request 모듈을 이용하여 내가 클릭하는 것이 아닌 컴퓨터에게 시켜보자

 

python 프로그램으로 위의 코드를 작성한다. 

import request로 python이 제공하는 request 모듈을 불러오고

요청을 할 url 부분을 적는다 우리가 원하는 url은 ?hit=계정명으로 

get 방식으로 hit값을 넘기는 것이다. 

쿠키 부분에서는 사이트에 로그인을 유지하기위해 자신의 phpsessid를 입력해야한다. 

phpsessid는 쿠키 editor로 확인할 수 있다. 

그 후 반복문을 사용해서 requests.get 요청을 한다.  인자값으로는 요청 url, 넣을 cookies 가 있다. 

request.text를 통해 반환값을 text형식으로 확인한다. 

 

python 코드를 실행하면 반환값으로 위와 같이 html코드가 출력된다.

그리고 사이트를 새로고침하면 아까와 같이 

문제가 해결된다.  

이 문제에서는 http프로토콜이 제공하는 메서들중 get메소드를 알고있어야하고 

get방식의 통신을 할때 url부분에 ?a=b 형식으로 http패킷이 전달되는 get메소드의 특징

cookie editor의 기능, 파이썬을 활용한 request 요청 을 알아야한다.

저작자표시 (새창열림)

'웹 > 웹 해킹 문제' 카테고리의 다른 글

Webhacking.kr 33번 write-up  (0) 2022.12.22
dvwa 실습 (file upload_low)  (0) 2022.12.08
webhacking.kr 20번 write-up  (0) 2022.12.07
webhacking.kr 23번 write-up  (0) 2022.12.06
webhacking.kr 47번 write-up  (0) 2022.12.04
'웹/웹 해킹 문제' 카테고리의 다른 글
  • dvwa 실습 (file upload_low)
  • webhacking.kr 20번 write-up
  • webhacking.kr 23번 write-up
  • webhacking.kr 47번 write-up
-송현우-
-송현우-
  • -송현우-
    모험
    -송현우-
  • 전체
    오늘
    어제
    • 분류 전체보기 (108)
      • 웹 (67)
        • 웹 해킹 문제 (45)
        • bandit( overthewire ) (0)
        • 기술 (5)
        • 웹 취약점 정리 (2)
        • 웹 해킹 보고서 (0)
        • 모바일 해킹 정리 (0)
        • 모의해킹 실무 과정 (15)
      • 모바일 (0)
      • 인프라 (10)
        • Infra 보안점검 (10)
      • 클라우드 (0)
      • 네트워크 (1)
        • 네트워크 기초 이론 (1)
      • 자격증 (11)
        • 정보보안기사 (2)
        • 정보처리기사 (2)
        • CPPG (1)
        • 리눅스마스터2급 (1)
        • bhpt (4)
        • 컴활 (1)
      • ISMS-P (1)
      • 개발 (16)
        • 백준 (12)
        • 게임 (3)
      • CS (1)
      • 공부 계획 (1)
      • 정리노트 (0)
      • CTF 대회 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    webhacking.kr 21
    불충분한 인가
    주요정보통신기반시설 기술적 취약점 분석 평가 방법 상세 가이드
    webhacking.kr
    webhacking.kr 43번
    bwapp
    정보보안기사 합격 수기
    WarGame
    백준
    2023년도 4회차 실기
    불충분한 인증
    write-up
    wehacking.kr
    webhacking
    2주차 정리
    문제풀이
    너의 평점은
    행렬덧셈
    write up
    웹해킹
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
-송현우-
webhacking.kr 32번 write-up
상단으로

티스토리툴바