[webhacking.kr] 11번 문제 풀이[Regular Expression]

최대 1 분 소요

💡 Webhacking.kr challenge(old) 11번 문제에 대한 풀이입니다.

문제

문제 화면

image

소스 코드

 <?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>");
?>

문제가 아주 간단합니다. 정규표현식에 대해서 조금만 알면 쉽게 풀 수 있습니다.

주어진 정규 표현식을 풀어서 써보면 다음과 같습니다.

  1. [1-3] : 1,2,3중에 하나
  2. [a-f]{5} : a,b,c,d,e,f 중 5글자
  3. _ : 문자 ‘_’
  4. .* : 아무 문자(.) 0개 이상 반복
  5. $_SEVER[REMOTE_ADDR] : 내 ip
  6. .* : 아무 문자(.) 0개 이상 반복
  7. \t : tab
  8. p : 문자 ‘p’
  9. \t : tab
  10. a : 문자 ‘a’
  11. \t : tab
  12. s : 문자 ‘s’
  13. \t : tab
  14. s : 문자 ‘s’

위의 조건들을 만족하는 문자열 : 1aaaaa_58.233.115.96 p a s s

이걸 ?val = 값으로 입력해주면 끝

image

참고로 https://regexr.com/ 사이트를 이용하면 정규 표현식에 대한 설명과 테스트도 해볼 수 있습니다.

image

댓글남기기