Webhacking.kr 1번 문제 화면이다. Level : 1과 view_source라는 링크가 확인된다.
링크 클릭시 해당 소스가 출력되며, 해당 소스를 분석해본다.
<?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/"); #user_lv쿠키값을 1로 설정
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; #user_lv 쿠키값이 4이상일 경우 1로 설정
if($_COOKIE['user_lv']>3) solve(1); #user_lv 쿠키값이 3이상일때 solve(1)을 실행
echo "<br>level : {$_COOKIE['user_lv']}";
?>
<br>
<a href=./?view-source=1>view-source</a>
</body>
</html>
필요한 부분은 주석을 달아놓은 부분이며,
user_lv 쿠키값을 최초 1로 설정하고,
user_lv쿠키값이 4 이상일 경우 1로 다시 설정,
쿠키값이 3초과일경우 solve(1)을 실행하게 되는 코드이다.
즉 문제풀이는 쿠키값을 3을 초과하며 4 미만으로 설정해야 solve(1)가 실행되며 문제가 풀린다.
이에 크롬 확장프로그램을 통하여 쿠키를 값을 설정해보겠다.
크롬 확장프로그램인 EditThisCookie 링크를 클릭하여 설치 한 뒤, 아래와 같은 화면에서 쿠키값을 설정할 수 있다.
쿠키가 무엇인가가 궁금하면 해당링크를 클릭하여 확인한다. -> 쿠키란 무엇인가?
먼저 화면 우측상단 쿠키 모양을 클릭하면 해당 화면이 보이게 되며,
user_lv의 값이 최초 설정인 1로 되어있는게 확인이 된다.
이때 3<4 를 성립시키기 위해 3 초과, 4 미만의 값은 소수점인 3.1부터 3.9가 된다.
값을 3.5로 수정후 하단 초록색 확인 버튼을 클릭하여 쿠키값 수정을 마치고,
웹페이지를 새로고침 해주면 문제풀이가 끝이난다.
이상으로 Webhacking.kr old_01번 문제풀이를 마친다.
'IT > 보안' 카테고리의 다른 글
[리버싱]NOX_Android IDA 원격 디버깅 (0) | 2022.04.30 |
---|---|
SYN Flooding 공격 (0) | 2022.02.16 |
[웹] 쿠키란 무엇인가? (0) | 2021.07.21 |
[보안] 암호학 용어 정리-1 (0) | 2020.10.10 |
서비스 거부공격(DDOS) (0) | 2020.02.27 |