일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 웹해킹_1번
- SW블로그
- 정보보안
- 웹마스터
- webhacking.kr_1번
- webhacking.kr
- 패킷조작
- c언어
- 코드블럭_설치오류
- 쿠키조작
- 코드블락
- 워게임
- webhacking.kr_4번
- Hello_world!
- 레인보우테이블
- HTTP_쿠키
- 수집오류
- 수집보류
- aaencode
- 블로그_시작
- 패킷조작프로그램
- Burp
- 서치어드바이저
- sql인젝션
- 코드블럭
- SQL블라인드인젝션
- 수집성공
- 웹해킹
- webhacking.kr_3번
- WebHacking
- Today
- Total
호빵둥이 IT Blog
Webhacking.kr 11번 풀이 :: 호빵둥이 IT Blog 본문
안녕하세요!
오늘은 워게임, Webhacking.kr Chellenge n번 문제를 풀어보도록 하겠습니다.
이번 문제는 PHP를 사용한 문제입니다.
#문제 보기
우선 https://webhacking.kr/challenge/code-2/ 로 접속해보도록 하겠습니다.
이번 문제는 소스코드를 분석해서 확인해봐야 될 것 같습니다.
일단 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
|
<?php
include "../../config.php";
if($_GET['view_source']) view_source();
?><html>
<head>
<title>Challenge 11</title>
<style type="text/css">
body { background:black; color:white; font-size:10pt; }
</style>
</head>
<body>
<center>
<br><br>
<?php
$pat="/[1-3][a-f]{5}_.*$_SERVER[REMOTE_ADDR].*\tp\ta\ts\ts/";
if(preg_match($pat,$_GET['val'])){
solve(11);
}
else echo("<h2>Wrong</h2>");
echo("<br><br>");
?>
<a href=./?view_source=1>view-source</a>
</center>
</body>
</html>
|
cs |
PHP 부분만 따로 보도록 하겠습니다.
1
2
3
4
5
6
7
8
|
<?php
$pat="/[1-3][a-f]{5}_.*$_SERVER[REMOTE_ADDR].*\tp\ta\ts\ts/";
if(preg_match($pat,$_GET['val'])){
solve(11);
}
else echo("<h2>Wrong</h2>");
echo("<br><br>");
?>
|
cs |
2번째 줄에서 $pat 값을 지정합니다.
정규식을 분석하면, 1~3의 숫자 1개 + a~f의 소문자 5개 + 사용자의 IP + */tp/ta/ts/ts 형식을
pat에 저장합니다.
3번째 줄에서 만약 이 형식과 val 파라미터로 가져온 값이 같다면, 문제가 풀리는 구조입니다.
즉 우리는 val 값을 pat의 정규식에 맞추면 바로 풀 수 있는 구조인 것 같습니다.
이제 문제를 풀어보도록 하겠습니다.
#문제 풀기
val의 형식을 맞추기 위해서
val = 1aaaaa_{접속한 IP}*%09p%09a%09s%09s
로 만들어 주겠습니다.
뒤의 탭 문자는 URL인코딩을 통해서 %09로 바꿔주었습니다.
자신의 IP주소는 하단 링크에서 확인할 수 있습니다.
확인한 파라미터를 이용해서 접속을 시도하면,
https://webhacking.kr/challenge/code-2/?val=1aaaaa_{본인의 IP 주소}*%09p%09a%09s%09s
문제가 간단하게 풀렸습니다!
#연관된 활동
이번 문제는 기존의 내용을 사용하여 간단하게 풀 수 있었습니다.
정규식의 개념을 알고, PHP의 REMODE_ADDR을 알면 파라미터 개념을 사용해서 풀 수 있었습니다.
코딩을 하면서 정규식을 사용하면 논리 구문에서 획기적으로 코드를 줄일 수 있고 값 형식을 쉽게 고정할 수 있으므로
항상 숙지하고 있기를 바랍니다.
포스트 잘 보셨다면 하단에 ♡ 꼭 눌러주시길 부탁드립니다!
(♡ 는 블로거에게 큰 힘이 됩니다)
[이전글] : 2020/06/20 - [프로그래밍/[워게임]Webhacking.kr] - Webhacking.kr 10번 풀이 :: 호빵둥이 IT Blog
[다음글] : 2020/07/04 - [프로그래밍/[워게임]Webhacking.kr] - Webhacking.kr 12번 풀이 :: 호빵둥이 IT Blog
'프로그래밍 > [워게임]Webhacking.kr' 카테고리의 다른 글
Webhacking.kr 12번 풀이 :: 호빵둥이 IT Blog (0) | 2020.07.04 |
---|---|
Webhacking.kr 10번 풀이 :: 호빵둥이 IT Blog (0) | 2020.06.20 |
Webhacking.kr 9번 풀이 :: 호빵둥이 IT Blog (0) | 2020.06.19 |
Webhacking.kr 8번 풀이 :: 호빵둥이 IT Blog (0) | 2020.05.18 |
Webhacking.kr 7번 풀이 :: 호빵둥이 IT Blog (2) | 2020.05.17 |