인디안 보호구역
WebHacking.kr 1 본문
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 |