2023. 11. 19. 11:11ㆍWeb/dreamhack
php로 작성된 페이지를 소스코드를 해석하면 될듯하다
로그인 페이지가 나왔다
문제파일을 받아서 웹페이지가 어떻게 동작하는지 확인 해 보자
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값 확인
'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 |