250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 28 | 29 | 30 |
Tags
- 암호학
- RVA
- 코드업
- SQL_Injection
- 디피헬먼
- 심층학습
- 딥러닝
- ImageBase
- 기계학습
- C언어
- codeup
- dsa
- 파일구조
- Cross Site Scripting
- injection
- 머신러닝
- XSS
- db
- ReflectedXSS
- 공개키
- 프로그래머스
- Database
- SQL
- dvwa
- StoredXSS
- 인공지능
- RSA
- 보안
- 웹
- 알고리즘
Archives
- Today
- Total
Ye0ngJae
[Webhacking.kr] Challenge Old 1 - 문제풀이 본문
728x90
문제
풀이
더보기
우선 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/");
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>
view-source를 통하여 얻은 웹 페이지의 소스코드이다. 아래 php 코드를 보면 유저의 쿠키 값 중 user_lv이라는 값을 가지고 와서 만일 쿠키값이 숫자가 아니거나 user_lv 값이 4 이상이면 쿠키를 1로 지정한다. 또 아래 조건문을 살펴보면 user_lv 값이 3 초과일 경우에 문제가 풀린다고 한다.
따라서 우리는 user_lv 값을 3보다는 크지만 4보다는 작게 설정해야 한다. 처음 문제를 봤을 경우에는 이게 무슨 소리인가 싶지만, 위 코드에서는 user_lv 값이 정수인지 아닌지 검증하는 부분이 없다.
따라서 user_lv 값을 3.x 값으로 지정해주면 조건문을 만족하여서 문제가 해결되는 것을 확인할 수 있다.
728x90
'정보보안 > 워게임' 카테고리의 다른 글
[Webhacking.kr] Challenge old 14 - 문제풀이 (0) | 2022.12.21 |
---|---|
[Webhacking.kr] Challenge Old 6 - 문제풀이 (0) | 2022.12.21 |
[Dreamhack] Return to Shellcode - 문제풀이 (0) | 2022.09.26 |
[Dreamhack] basic_exploitation_000 문제 풀이 (0) | 2022.09.21 |
[pwnable.kr] BOF 문제풀이 (1) | 2022.09.20 |