[Dreamhack] phpreg 풀이

653o·2025년 2월 6일

dreamhack

목록 보기
3/6

혹시나 힌트만 필요하다면 <우회의 연속임>을 기억하도록.........

이 문제는 우회의 연속이다아아ㅏㅏㅏ

암튼 시작

파일 다운 받고 압축해제

하면 다음과 같이 파일이 2개 나온다

index 부터 오픈

별거 없다 그냥 기본페이지인듯 원래는

<?php

...

>

처럼 되어있어서 저 개행문자들 사이에 코드가 있어야 한다.

다음 step2.php 오픈


찾았도다

우선 코드를 잘 보다보면 $input으로 name과 pw를 입력받아서 필터링 거치고 내부적으로 잘 지지고볶이다 보면 다음 페이지로 넘어가는 것 같다

그럼 해석 시작

$name = preg_replace("/nyang/i", "", $input_name);

nyang을 입력받으면 공백으로 치환한다는 뜻

$pw = preg_replace("/\d*\@\d{2,3}(31)+[^0-8\"]\!/", "d4y0r50ng", $input_pw);

요건 살짝 복잡
직접 설명하는 것 보다는
regexr.com에서 설명해주는게 더 정확하니 참고하시길.....(이 사이트 나름 유용함)

여기까지만 놓고 보면 (0에서 9사이의 숫자하나)@(0에서 9사이의 숫자 2개~3개)

다음으로 숫자 31이 있어야하고

마지막으로 0에서 8이 아닌 숫자하나(==9)와 !를 마지막에 더한다....그러면 d4y0r50ng로 치환된다.....라네요

이것을

if ($name === "dnyang0310" && $pw === "d4y0r50ng+1+13")

처럼 나타내기 위해서는
name는 dnyang에서 d랑 g 사이 아무곳에나 nyang한 번 더 넣어주고...
pw는 8@00319!+1+13처럼 해주면


잘 넘어가쥬.......

이제는

이곳을 보면 같은 방식으로 flag가 입력되면 error를 표시함다...

하지만 여기는 cmd 상황이니 cmd에서 사용가능한 우회를 하면 되겠쥬~

아까처럼 flaflagg처럼 하면 error뜹니다.... 가운데에 flag문자열이 있자나요......

보통 cmd에서 * 는 모든 문자에 대응이 가능한 ...뭐시기 입니다
이름이 중요한건 아니니까~

암튼 flag에서 fl*g f**g fla* *lag 등등 뭐를 하던 그건 하는 사람 마음이고

그래서 command를 작성해보면 cat ../dream/fla*.txt 이라고 썻슴다
그랬더니 잘 되던디요....

이상 phpreg 풀이였슴다

dreamhack 사랑해요

profile
hehehe fk u

0개의 댓글