일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 쿠키조작
- webhacking.kr
- WebHacking
- 수집보류
- 레인보우테이블
- 워게임
- 코드블락
- 코드블럭
- 웹해킹
- SQL블라인드인젝션
- c언어
- webhacking.kr_1번
- 웹해킹_1번
- webhacking.kr_3번
- 패킷조작
- aaencode
- 수집성공
- webhacking.kr_4번
- SW블로그
- 코드블럭_설치오류
- 서치어드바이저
- 웹마스터
- Burp
- Hello_world!
- 블로그_시작
- sql인젝션
- HTTP_쿠키
- 수집오류
- 패킷조작프로그램
- 정보보안
- Today
- Total
호빵둥이 IT Blog
Webhacking.kr 1번 풀이 :: 호빵둥이 IT Blog 본문
안녕하세요. 오늘은 워게임 Webhacking.kr Old-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를 눌러 개발자도구로 들어가도록 합시다.
상단 탭에서 >>를 눌러 [Aplication] > [Storage] > [Cookies]를 눌러서 들어가 봅시다.
이제 이 쿠키값을 5로 바꾸면 문제를 해결할 수 있습니다. user_lv 쿠키의 value값을 더블클릭해 5~6사이의 임의의 숫자로 수정해 줍니다.
이제 쿠키값 변경을 적용시키기 위해 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
'프로그래밍 > [워게임]Webhacking.kr' 카테고리의 다른 글
Webhacking.kr 7번 풀이 :: 호빵둥이 IT Blog (2) | 2020.05.17 |
---|---|
Webhacking.kr 6번 풀이 :: 호빵둥이 IT Blog (0) | 2020.05.16 |
Webhacking.kr 5번 풀이 :: 호빵둥이 IT Blog (0) | 2020.05.15 |
Webhacking.kr 4번 풀이 :: 호빵둥이 IT Blog (1) | 2020.05.14 |
Webhacking.kr 3번 풀이 :: 호빵둥이 IT Blog (0) | 2020.05.13 |