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에 조건문이 있다.
- 쿠키로 들어온 'user_lv'가 숫자가 아니면 'user_lv'는 1이다
- ' user_lv'가 4보다 크거나 같으면 ' user_lv'는 1이다.
- ' 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 |