워게임 리뷰
Challenge 1
gyuho.kim
2019. 1. 13. 21:16
Challenge no.1
사용 도구 |
BurpSuite v1.7.30 |
브라우저 |
Chrome 71.0.3578.98 (공식 빌드) (64비트) (cohort: Stable) |
문제 분석
>>> index.phps
1 2 3 4 5 6 7 8 9 10 11 12 13 | <? $password="????"; if(eregi("[^0-9,.]",$_COOKIE[user_lv])) $_COOKIE[user_lv]=1; if($_COOKIE[user_lv]>=6) $_COOKIE[user_lv]=1; if($_COOKIE[user_lv]>5) @solve(); echo("<br>level : $_COOKIE[user_lv]"); ?> | cs |
5: eregi 함수는 패턴에 대한 문자열을 다른 문자로 치환해주는 함수이다. 1
[^0-9,.] 패턴을 분석해보면 0.1과 같이 숫자.숫자 형태로 문자열이 시작하지 않으면 user_lv 를 1로 초기화
7: 'user_lv'의 값이 6보다 클 경우 'user_lv' 값을 1로 초기화
9: 'user_lv'값이 5보다 클 경우 @solve() 함수를 실행시킴.
문제 해결을 위해 solve() 함수를 실행시켜야 한다. 따라서 5< user_lv ≤6 을 만족하면 된다.
풀이
Burpsuite의 프록시 기능을 이용해 서버 요청을 캡쳐해 보면 user_lv 쿠키갑이 1 로 설정되어 있는 것을 볼 수 있음.
user_lv 을 5.5 와 같이 입력해 주면 문제가 클리어 된다.
본 게시글은 webhacking.kr 문제를 풀며 풀이과정을 정리한 글 입니다.