[Wargame] dreamhack - phpreg

2023. 11. 19. 11:11Web/dreamhack

728x90

문제 설명

php로 작성된 페이지를 소스코드를 해석하면 될듯하다

웹 페이지

로그인 페이지가 나왔다

문제 파일

문제파일을 받아서 웹페이지가 어떻게 동작하는지 확인 해 보자

step1 - step2

step2에 있는 소스코드를 확인 해 봤는데 

Nickname과 Password에 들어가야 하는 값인 name과 pw의 값이 나와있다

 

preg_match(): 문자열을 검색하는 함수

php preg_replace(): 함수는 지정된 패턴을 찾아서 다른 패턴으로 바꿔주는 함수

 

입력한 pw와 [a-zA-Z]를 비교하여 문자가 존재하면 안된다는 것을 확인

 

input_name에 nyang 문자가 있다면 공백으로 바꿈

input_pw에 \d*\@\d{2,3}(31)+[^0-8\"]\!문자가 있다면 d4y0r50ng 바꾼다

name 값은 dnyang0310값이 입력 되어야하고

pw 값은 d4y0r50ng+1+13값이 입력 되어야한다

우리가 Nickname에 입력해야 할 값은 dnynyangang0310

Password값은 정규표현식 [a-zA-Z]문자가 존재하면 안되고

\d*\@\d{2,3}(31)+[^0-8\"]\! 패턴에 해당되는 값에 +1+13값을 입력하면 된다 

\d* : 숫자 1번이상 반복 -> 99

\@ : 문자 @ -> @

\d{2,3} : 숫자 2~3번 반복 -> 99

(31) : 31 -> 31

[^0-8] : 0~8 사이가 아닌 숫자 -> 9

\! : 문자 ! -> !

다 합치면 99@99319!+1+13 이다

step 2 로 넘어가면서 문이 열렸다!!

Command 입력칸이 보인다

소스코드 확인 해 보니 cmd 명령어로 flag값을 찾으면 되겠다

그런데 cmd에 /flag 를 입력하면 Error를, 아니라면 php코드를 실행시키는 필터가 존재

정규표현식을 이용하여 fla*를 이용하면 되겠다

문제 설명에서 flag값의 위치는 친절히 알려주셨다

pwd 명령어로 현재 경로를 출력했다

cat 명령어로 fla* 값을 출력

flag값 확인

728x90

'Web > dreamhack' 카테고리의 다른 글

[Wargame] dreamhack - session-basic  (0) 2024.05.08
[Wargame] dreamhack - cookie  (0) 2024.05.08
[Wargame] dreamhack - devtools-sources  (0) 2024.05.08
[Wargame] dreamhack - ex-reg-ex  (2) 2023.11.19