인디안 보호구역

WebHacking.kr 1 본문

Study/WebHacking 공부하는 인디안

WebHacking.kr 1

Indie-An 2019. 5. 11. 21:00

1. 문제 분석 - 코드 확인

 

페이지 스크립트를 확인.

>> ‘F12’ 를 눌러서 크롬 개발자 도구를 연다.

>> ‘Elements’ 패널에서 페이지 요소 중 특이한 점 있는지 확인.

>> 페이지 요소를 검사하는 방법은 ‘Ctrl + Shift + C’를 눌러 DevTools를 Inspect Element 모드로 열어 요소 위로 마우스를 가져간다. 혹은 콘솔에서 inspect(document.body)함수를 사용한다.

>> <a>태그로 링크(index.phps)가 걸려있음을 확인하였다.

>> <a>태그를 클릭한다.

문제 파악

>> HTML 스크립트를 통해 좀 전에 본 1번 문제 페이지의 스크립트임을 확인하였다.

>> PHP 함수를 확인한다.

  • SetCookie(“user_lv”, “1” : 쿠키명, 쿠키값)을 통해 쿠키를 생성한다.

  • 세개의 if 문이 나열해있는 것이 보이는데, 2개의 if문은 피하고, 마지막 if문을 실행해야 한다는 것을 알 수 있다. 첫번째는 필터링 함수, 두번째는 조건부 대입이다.

    1) eregi(“[^0-9, .]”,$_COOKIE[user_lv] : 필터링 조건, 대상)는 필터링 함수로서
    대상에 숫자, 온점 외의 값이 들어가면 True 값을 반환하여 user_lv의 값을 1로 초기화한다.

    2) user_lv의 값이 6이상이면  1로 초기화한다.

    3) solve를 실행할 수 있는 조건은 쿠키값이 5보다 커야한다.

조건을 나열해보면 user_lv(쿠키 값)은 숫자와 온점을 사용할 수 있으므로 숫자의 범위는 소수이고 solve하기 위해선 5 < user_lv < 6 이어야 한다는 것을 알 수 있었다.

 

 

2. 문제 해결 - 쿠키값 변조 (동적 분석은 해당 문제에서 필요 없다.)

>> Proxy 기능을 설정하고, ‘Intercept is off’를 클릭하여 ‘on’ 상태로 변경한다.

>> 1번 문제를 클릭한다.

 

 

>> user_lv 값이 1로 되어있으므로 5.5로 변경한다. 변경하는 방법은 user_lv에 커서를 놓고 ‘f2’를 눌러 바로 수정하거나  Params 탭에서 수정 가능하다.

 

결과 : 성공!

 

2. 배운 점

  • 버프 슈트의 간단한 사용 방법

  • 간단한 쿠키 변조

  • php의 eregi함수, setcookie 함수 문법

  • 정규식 문법 (”^” = “not”)

 

3. 참고 링크

 

'Study > WebHacking 공부하는 인디안' 카테고리의 다른 글

Webhacking.kr 24  (0) 2019.05.25
WebHacking.kr 32  (0) 2019.05.22
Webhacking.kr 10  (0) 2019.05.19
WebHacking.kr 14  (0) 2019.05.11
WebHacking.kr 16  (0) 2019.05.11
Comments