워게임 리뷰

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 문제를 풀며 풀이과정을 정리한 글 입니다.