호빵둥이 IT Blog

Webhacking.kr 1번 풀이 :: 호빵둥이 IT Blog 본문

프로그래밍/[워게임]Webhacking.kr

Webhacking.kr 1번 풀이 :: 호빵둥이 IT Blog

d2n0s4ur 2020. 5. 12. 21:00

 

안녕하세요. 오늘은 워게임 Webhacking.kr Old-01문제를 풀어보도록 하겠습니다.

 

우선 https://webhacking.kr/challenge/web-01/ 에 접속해봅시다.

 

https://webhacking.kr/challenge/web-01/ 에 접속한 모습

 

어떻게 해야할까요?

 

 

 

 

 

#소스코드 분석하기


 

일단, View-source를 눌러줍시다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
  include "../../config.php";
  if($_GET['view-source'== 1){ view_source(); }
  if(!$_COOKIE['user_lv']){
    SetCookie("user_lv","1",time()+86400*30,"/challenge/web-01/");
    echo("<meta http-equiv=refresh content=0>");
  }
?>
<html>
<head>
<title>Challenge 1</title>
</head>
<body bgcolor=black>
<center>
<br><br><br><br><br>
<font color=white>
---------------------<br>
<?php
  if(!is_numeric($_COOKIE['user_lv'])) $_COOKIE['user_lv']=1;
  if($_COOKIE['user_lv']>=6$_COOKIE['user_lv']=1;
  if($_COOKIE['user_lv']>5) solve(1);
  echo "<br>level : {$_COOKIE['user_lv']}";
?>
<br>
<a href=./?view-source=1>view-source</a>
</body>
</html>
cs

분석을 해볼까요?

 

우선, 위쪽 php부분을 봐주도록 합시다.

1
2
3
4
5
6
7
8
<?php
  ··· 생략 ···
  if(!$_COOKIE['user_lv']){
    SetCookie("user_lv","1",time()+86400*30,"/challenge/web-01/");
    echo("<meta http-equiv=refresh content=0>");
  }
  ··· 생략 ···
?>
cs

3번 째 줄에서, 'user_lv'이라는 쿠키값이 존재하지 않는다면,  'user_lv'쿠키 값에 1을 저장하고 유효기간을 86400X30초 = 30일로 지정한다는 내용입니다. 그 후 <meta http-equiv=refresh content=0>를 내보냅니다.

 

1
2
3
4
5
6
<?php
  if(!is_numeric($_COOKIE['user_lv'])) $_COOKIE['user_lv']=1;
  if($_COOKIE['user_lv']>=6$_COOKIE['user_lv']=1;
  if($_COOKIE['user_lv']>5) solve(1);
  echo "<br>level : {$_COOKIE['user_lv']}";
?>
cs

'user_lv'의 쿠키값이 넘버(숫자형)이 아니면 1로 지정하고

'user_lv'의 쿠키값이 6이상이면 1로 지정하고

5초과 6미만일 때 문제가 풀리는 것으로 보입니다.

 

 

 

 

 

#문제 해결하기


그러면, 'user_lv'의 쿠키값을 5~6사이로 지정하면 될 것 같습니다!

 

쿠키값을 편집하기 위해서는, Chrome 브라우저가 필요합니다. 크롬브라우저로 해당 문제에 접속한 후, F12를 눌러 개발자도구로 들어가도록 합시다.

 

크롬브라우저에서 F12를 눌러서 개발자도구를 열 수 있다.

상단 탭에서 >>를 눌러 [Aplication] > [Storage] > [Cookies]를 눌러서 들어가 봅시다.

 

Cookies 아래 https://webhacking.kr에 user_lv이라는 쿠키가 있는 것을 알 수 있다.

 

이제 이 쿠키값을 5로 바꾸면 문제를 해결할 수 있습니다. user_lv 쿠키의 value값을 더블클릭해 5~6사이의 임의의 숫자로 수정해 줍니다.

 

user_lv 쿠키값을 5로 수정한 모습

이제 쿠키값 변경을 적용시키기 위해 F5(새로고침)을 해주면,

 

문제를 해결할 수 있습니다!

 

 

 

 

 

 

 

#연관된 활동


이번 문제를 풀기 위해서는 PHP언어의 해석, 쿠키 개념에 대한 이해가 필요합니다.

 

 

  1. PHP?


PHP는 서버 사이드 스크립트 언어로, 과거에는 여러 웹 페이지에서 사용했습니다.

 

하지만 SQL 인젝션이나, 여러 보안문제에 취약하기 때문에 최근에는 많이 사용되지 않는 언어입니다.

(최근에는 Node.js, Javascript 등이 많이 사용되고 있습니다)

 

그럼에도 불구하고, php를 활용한 SQL 인젝션, DB 관리 등 배울 수 있는점이 굉장히 많은 언어입니다. 저처럼 정보보안 공부를 어떻게 시작하면 좋을까, 하시는 분들은 꼭 알고 있는 것을 추천드립니다.

 

 

  2. 쿠키?


쿠키란, 인터넷 웹사이트에 접속할 때 웹 사이트가 있는 서버에 의해 사용자의 컴퓨터에 저장되는 정보를 뜻합니다. 로그인 정보나 장바구니 정보 등, 웹사이트를 나가더라도 일정 시간동안은 해당 정보를 사용할 수 있게 하는 장치라고 생각하면 됩니다.

 

실제로 대부분의 홈쇼핑이나 로그인을 필요로 하는 사이트는 쿠키를 사용합니다. 

 

 

 

포스트 잘 보셨다면 하단에 ♡ 꼭 눌러주시길 부탁드립니다!

(♡ 는 블로거에게 큰 힘이 됩니다)

 

 

 

[다음글] : 2020/05/13 - [SW/[워게임]Webhacking.kr] - Webhacking.kr Challenge 3번 :: 호빵둥이 IT Blog

Comments