본문 바로가기

웹/webhacking.kr

webhacking.kr 11번

<?php
  include "../../config.php";
  if($_GET['view_source']) view_source();
?><html>
<head>
<title>Challenge 11</title>
<style type="text/css">
body { background:black; color:white; font-size:10pt; }
</style>
</head>
<body>
<center>
<br><br>
<?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>");
?>
<a href=./?view_source=1>view-source</a>
</center>
</body>
</html>

이 문제 역시 소스코들 분석하는 문제입니다. 소스 코드 분석은 굉장히 간단합니다. pat의 값과 get 방식으로 전달한 val의 값이 같으면 문제가 풀립니다. 그렇다면 pat이 어떤 값을 가지는지 분석해서 전달하면 될 거 같습니다. 

 

# pat(정규표현식) 분석

정규표현식 분석 자료는 아래의 링크를 참고해서 분석했습니다.

www.nextree.co.kr/p4327/

 

정규표현식(Regular Expression)을 소개합니다.

날이 갈수록 개인정보 보호에 관련하여 보안정책을 점진적으로 강화하고 있습니다. 이에 따라 Web에서 회원가입 시 Password 설정을 복잡해진 보안정책에 맞추다 보니 복잡하게 조합해야만 정상적

www.nextree.co.kr

1. 양끝 // : 정규표현식임을 알리는 뜻입니다.

2. [1-3] : 1,2,3 중 하나의 문자가 해당됩니다.

3. [a-f]{5} : a~f사이의 문자가 5번 반복됩니다.

4. _ : 그냥 문자

5. .*: *가 0번 이상 반복을 뜻하기 때문에 빼도 됩니다.

6. \t :  tap을 뜻하는 문자인데 url에서 전달할 때는 %09로 치환해서 넣어줍니다.

 

위의 분석한 결과대로 val 결과값을 만들어주면

 

1aaaaa_[ip주소]%09p%09a%09s%09s를 넣어주면 됩니다.

 

제가 이렇게 val 값을 만들고 삽질을 한 부분이 ip주소 때문인데, 제가 윈도우가 아니라 mac os를 쓰는 유저라 조금 삽질을 했습니다. 구글링을 하다보면 여러가지 방법이 나오는데, 제가 성공한 방법은 아래의 사이트에 접속해서 나오는 ip주소를 이용하는 것입니다.

whatismyipaddress.com/

이 사이트에 접속해서 나온 IP주소를 위에서 적어놓은 양식에 넣으면 됩니다. 이때 양쪽 대괄호는 필요없습니다. 그렇게 전달하게 되면

문제가 풀리게 됩니다.

 

' > webhacking.kr' 카테고리의 다른 글

webhacking.kr 14번  (0) 2021.02.06
webhacking.kr 12번  (0) 2021.02.01
webhacking.kr 8번  (0) 2021.02.01
webhacking.kr 6번  (0) 2021.01.31
webhacking.kr 5번  (0) 2021.01.31