
이 문제는 우회의 연속이다아아ㅏㅏㅏ
암튼 시작
파일 다운 받고 압축해제

하면 다음과 같이 파일이 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 사랑해요