정보보안

쿠키 탈취 및 세션 위변조

수박쓰123 2024. 4. 4. 13:04

1. old-01

<?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']>=4) $_COOKIE['user_lv']=1;
  if($_COOKIE['user_lv']>3) solve(1);
  echo "<br>level : {$_COOKIE['user_lv']}";
?>
<br>
<a href=./?view-source=1>view-source</a>
</body>
</html>

이것이 문제 1번의 소스코드인데 우리는 여기서 cookie 값을 이용하여 조작해 볼 것이다

 

f12를 눌러 보이는 저 cookie를 조작해 볼 것이다.

 

우선 아까 그 소스코드를 살펴보면 php 2에 조건문이 있다.

  1. 쿠키로 들어온 'user_lv'가 숫자가 아니면 'user_lv'는 1이다
  2. ' user_lv'가 4보다 크거나 같으면 ' user_lv'는 1이다.
  3. ' user_lv'가 3보다 크면 solve(1)을 실행하고, br 태그에 있는 level을 1에서 3.5로 둔다

결국 3<'user_lv'<4 에 적합한 값을 넣고 새로고침을 하면 해결될 것이다.

 


2. old-32

 

문제를 들어가면 해당 화면을 볼 수 있을 것이다.

닉네임을 누르면 투표가 되고 한번 투표하면 다시 투표를 할 수 없다.

우린 내 닉네임을 찾아서 쿠키 조작으로 100표를 달성하면 된다.

 

우선 쿠키를 확인해보자

이 쿠키값을 바꾸면 될 듯 하지만 100번을 바꾸기에는 비효율적이므로 아예 ok를 차단해보자

이 후 100번을 누르면

 

문제가 해결된다.

'정보보안' 카테고리의 다른 글

간단한 Brute Force 공격 실행 및 보안 문제 풀기  (0) 2024.04.04
정보 보호  (0) 2024.03.14