이 영역을 누르면 첫 페이지로 이동
caputdraconis 블로그의 첫 페이지로 이동

caputdraconis

페이지 맨 위로 올라가기

caputdraconis

네트워크 관점에서의 클라우드 컴퓨팅을 공부하는 중입니다 :)

[Webhacking.kr] Challenge old-11

  • 2020.08.15 19:52
  • Security/WebHacking
글 작성자: caputdraconis
반응형

webhacking.kr/old.php

 

Webhacking.kr

 

webhacking.kr

11번 PHP 문제다.

 

들어오자마자 틀렸다고 하니깐 기분이 묘하네,,

소스코드를 살펴보자

<?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>

GET방식으로 val이라는 이름의 데이터가 전해지는데, 이 값이 $pat에 저장되는 값과 일치하면 풀리는 간단한 문제다..(전혀 간단하지 않았다씨)

 

일단 저 가운데에 $_SERVER[REMOTE_ADDR]은 접속자의 IP주소다. 이는 초록창에 'Ip주소 확인'이라고 검색하면 바로 알 수 있다.

 

그럼 저 앞과 뒤에 저 이상한건 뭘까...? 뭔가 특수기호를 팍팍 쓴걸 보니 특별한 의미가 있어보인다. 바로 그 해답은!!! 정 규 표 현 식~

http://www.nextree.co.kr/p4327/

 

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

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

www.nextree.co.kr

정리가 잘 되어있는 블로그다.

 

위의 블로그를 참고해 소스코드를 분석해보면

/[1-3][a-f]{5}_.*$_SERVER[REMOTE_ADDR].*\tp\ta\ts\ts/

에서 /는 구분 기호를 의미하고

[1-3]은 1부터 3 사이의 값 중 하나를 의미한다. 또한 [a-f]도 비슷한 맥락으로 a와 f 사이중 하나를 의미하는데 뒤에 붙은 {5}로 인해 5번 반복한다. .는 문자열 합치기를 의미한다. 그리고 뒤에 \t는 tab을 의미한다. tab 크기만큼 공백을 의미한다. 

그럼 GET 방식으로 줘야하는 값은 아래와 같을 것이다.

1aaaaa_*아이피주소*	p	a	s	s

근데 \t로 인해 벌어진 공백이 거슬린다. \t는 url인코딩을 통해 바꿔주자. 

https://www.eso.org/~ndelmott/url_encode.html

 

URL-encoding Reference

 

www.eso.org

\t는 %09와 같다. 

1aaaaa_*아이피주소*%09p%09a%09s%09s

후 이대로 가보자

 

 

 

반응형

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [Webhacking.kr] Challenge old-33

    [Webhacking.kr] Challenge old-33

    2020.08.16
  • [LOS / LORD OF SQL INJECTION] gremlin

    [LOS / LORD OF SQL INJECTION] gremlin

    2020.08.16
  • [Webhacking.kr] Challenge old-10

    [Webhacking.kr] Challenge old-10

    2020.08.14
  • [Webhacking.kr] Challenge old-24

    [Webhacking.kr] Challenge old-24

    2020.08.14
다른 글 더 둘러보기

정보

caputdraconis 블로그의 첫 페이지로 이동

caputdraconis

  • caputdraconis의 첫 페이지로 이동

검색

메뉴

    카테고리

    • 분류 전체보기 (168)
      • Cloud (3)
      • Computer Network (12)
      • Database (2)
      • Terraform (2)
      • 🥚고리즘 (13)
      • 겅부겅부🙃 (10)
        • Naver CS50 코칭스터디 (2)
        • Machine Learning (1)
        • Computing System (6)
      • 언어&프레임워크 (20)
        • Python (4)
        • Django (10)
        • Node JS (1)
        • C++ (2)
        • Java (1)
        • Flutter (2)
      • Security (76)
        • WebHacking Study (11)
        • 지옥방 스터디 (22)
        • 여름방학 스터디 (2)
        • PWN Study (6)
        • SUA Reversing Study (3)
        • PWN (3)
        • WebHacking (20)
        • Reversing (4)
      • 알고 있으면 도움되지 않을까,,? (23)
      • 일상다반사 (1)
      • 근황 정리 (1)
      • 42 Seoul (1)
        • Setting (1)

    최근 글

    인기 글

    댓글

    공지사항

    아카이브

    태그

    • 웹해킹.kr
    • 파이썬
    • 리스트함수
    • 드림핵
    • 파이썬함수
    • Python
    • old-16
    • 파이썬기초

    나의 외부 링크

    • Github
    • solved.ac
    • caputdraconis@kakao.com

    정보

    caputdraconis의 caputdraconis

    caputdraconis

    caputdraconis

    블로그 구독하기

    • 구독하기
    • RSS 피드

    방문자

    • 전체 방문자
    • 오늘
    • 어제

    티스토리

    • 티스토리 홈
    • 이 블로그 관리하기
    • 글쓰기
    Powered by Tistory / Kakao. Copyright © caputdraconis.

    티스토리툴바