728x90
일단 다짜고짜 틀렸다고 합니다
<?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>");
?>
핵심 코드를 보면 위와 같습니다
정말 solve(11)까지를 위해 단 두 줄밖에 없는데, 이해를 하나도 못했습니다
preg_match()함수에서는 pat 변수와 val 쿼리가 같을 때..
결국 pat 변수가 의미하는 바가 중요한데, 구글링 해보니 정규표현식이라고 합니다
정규표현식이란 특정한 규칙을 가진 문자열의 집할을 표현할 때 사용하는 형식 언어로,
프로그래밍 언어, text editor등의 문자열 검색/치환에서 쓰인다고 합니당
여기서 쓰이는 문자를 Meta문자라고 하는데, 이를 통해 정규표현식의 의미를 파악합니당
Meta문자 의미 모음; https://hamait.tistory.com/342
어쨌든, 아래 코드를 해석해보면,
$pat="/[1-3][a-f]{5}_.*$_SERVER[REMOTE_ADDR].*\tp\ta\ts\ts/";
[1-3] 1부터 3까지의 숫자 1개
[a-f]{5} a부터 f까지의 문자 5개
.*$_SERVER[REMOTE_ADDR].* 내 공인 IP 주소
\tp\ta\ts\ts에서 각 \t는 tab을 의미 = %09
이제 해당 페이지 URL에 위과 같이 넣어볼게요
728x90
'Wargame > webhacking.kr' 카테고리의 다른 글
Challenge old 15 (50) (0) | 2020.01.26 |
---|---|
Challenge old 12 (250) (0) | 2020.01.22 |
Challenge old 10 (250) (0) | 2020.01.22 |
[미완] Challenge old 8 (350) (0) | 2020.01.19 |
Challenge old 7 (300) (0) | 2020.01.19 |