본문 바로가기

Webhacking/Webhacking.kr

[Webhacking.kr] old-20번 문제 풀이

728x90
반응형

20번 풀이도 가즈아

맨 위에 time limit이 있고, 캡챠가 있고... submit이 있다...
일단 다 입력해서 submit을 눌러보았다.

(무엇을 보는거지? 그건 내 잔상이라구...)
느리댄다... 느낌이 팍 온다.
캡챠를 넣어놓은 것으로 보아, 닉네임/코멘트/캡차를 완벽하게 입력하여 submit을 2초안에 해야 풀리는 문제이다.
문제를 푸는 방법은 2가지 정도가 있을것 같다.

  • python urllib 또는 request 또는 selenium 모듈을 사용하여, Response내 captcha를 파싱하여 자동으로 Request에 넣어 보내기
  • 프록시 툴을 이용하여 응답 코드 내 html 코드를 수정하여 자동으로 Request를 정상적으로 보내게 만들기

첫번째 방법은 너무 쉬우니, 두번째 방법을 설명해 보겠다.

우선 이 스크린샷내 번호대로 설명을 하겠다.

  1. maxlength를 value로 변경하면 자동으로 닉네임 값이 10이 된다.
  2. 마찬가지로 maxlength를 value로 변경하면 자동으로 코멘트 값이 50이 된다.
  3. 캡챠를 입력하는 공간이었던 input 태그의 name을 captcha에서 다른것으로 변경한다. (4번에서 사용하기 위함)
  4. 캡챠 값이 있었던 button은 기본적으로 value에 정답이 들어있으므로(5번상자), name을 captcha_에서 captcha로 변경한다.
    (스크린샷에 표시하는것을 깜빡했지만.. type이 button이면 form이 정상적으로 전달되지 않기때문에, type을 text로 변경한다)

HTML 코드 뿐 아니라 실제 동작하는 ck함수도 변경을 해줘야하는데, ck함수는 직접 실행을 시켜야만 동작을 하기 때문에,
실제 form을 전송하는 구문인 lv5frm.submit() 을 function ck 선언 전에 실행시키도록 변경한다.

proxy 툴은 burpsuite를 사용하였고, 위 스크린샷 처럼 response body를 변경해주면 된다.

새로고침 한번 해주면 풀린다.

참신한 풀이로 진행해보고자 했다. 재밌는 문제였다.

728x90
반응형