[PHP] 문자열 필터링 함수(ereg, eregi...) 취약점을 이용한 우회

2016. 6. 20. 16:55·프로젝트 관련 조사/웹
반응형

출처: http://hackability.kr/entry/PHP-%EB%AC%B8%EC%9E%90%EC%97%B4-%ED%95%84%ED%84%B0%EB%A7%81-%ED%95%A8%EC%88%98ereg-eregi-%EC%B7%A8%EC%95%BD%EC%A0%90%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%9A%B0%ED%9A%8C



오늘 포스팅 할 내용은 PHP 에서 입력 문자열 필터링 함수의 취약점을 이용한 우회 기법에 대한 내용입니다.


PHP 에서는 HTTP 메소드를 통해 들어 오는 사용자의 입력 검증 또는 필터링을 위해 eregi 와 같은 함수를 사용해 왔습니다. (POSIX Regex)


예를들어, 간단히 다음과 같이 id 입력에 대해 필터링하는 PHP 코드가 있다고 가정 합니다.


index.php

1
2
3
4
5
6
7
8
9
10
<?
 
$_id = $_GET[id];
 
if (eregi("admin",$_id))
  echo "Filtered !!" . "<br>";
else
  echo $_id . "<br>";
 
?>


간단히, index.php?id=admin 으로 접근을 하게 되면 "Filtered !!" 라고 뜨게 되고 그 외 아이디를 입력하게 되면 해당 문자열을 출력해주게 됩니다.


문제가 없어 보이지만, PHP 5.3+ 부터 POSIX Regex 함수들이 더이상 사용되지 않게 되었습니다. (As of PHP 5.3.0, the POSIX Regex extension is deprecated.) 또한, PHP 6.0 부터는 아예 삭제됩니다. PHP 5.3+ 부터는 POSIX Regex 대신 PCRE Regex 를 사용하게 됩니다.


먼저, 5.3+ 에서 어떻게 위의 필터링을 우회 하는지 보도록 하겠습니다. PHP 5.3+ 에서 POSIX Regex 함수들을 사용할 때, NULL 문자를 만나게 되면 더이상 뒤의 문자열을 체크하지 않게 됩니다. 아래는 5.2 와 5.3에서 위의 index.php 사용에 대한 예 입니다.


PHP 5.2+

/index.php?id=admin



PHP 5.3+

/index.php?id=admin



PHP 5.2+, 5.3+ 모두 정상적으로 필터링 되는 것을 확인할 수 있습니다. 하지만, 첫 바이트에 NULL을 넣어 입력 문자열을 더이상 점검하지 못하도록 하면 어떻게 될까요?


PHP 5.2+

/index.php?id=%00admin


 


PHP 5.3+

/index.php?id=%00admin


 


PHP 5.2+ 에서는 정상적으로 필터링 되지만, PHP 5.3+ 에서는 필터링이 정상적으로 되지 않는 것을 확인 할 수 있습니다. 이를 통해 PHP 5.3+ POSIX Regex 필터링을 우회 하는 것을 확인하였습니다.


마지막으로 PHP 5.3+ 에서 위의 문제를 수정하기 위해 POSIX Regex 함수들을 PCRE Regex 로 변경하는 것을 요구 하고 있습니다.


Function replacements

 POSIX

 PCRE 

 ereg_replace()

 preg_replace()

 ereg()

 preg_match()

 eregi_replace()

 preg_replace()

 eregi()

 preg_match()

 split()

 preg_split()

 spliti()

 preg_split()

 sql_regcase()

 No equivalent


반응형
저작자표시 (새창열림)

'프로젝트 관련 조사 > 웹' 카테고리의 다른 글

워드프레스 준비물 - DB 생성  (0) 2016.06.22
Log Injection  (0) 2016.06.20
[PHP] strcmp 취약점을 이용한 인증 우회  (0) 2016.06.20
Burp Suite 사용법 정리  (0) 2016.06.20
document.URL.indexOf()  (0) 2016.06.20
'프로젝트 관련 조사/웹' 카테고리의 다른 글
  • 워드프레스 준비물 - DB 생성
  • Log Injection
  • [PHP] strcmp 취약점을 이용한 인증 우회
  • Burp Suite 사용법 정리
호레
호레
창업 / IT / 육아 / 일상 / 여행
    반응형
  • 호레
    Unique Life
    호레
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 법률
        • 기본
        • 개인정보보호법
        • 정보통신망법
        • 전자금융거래법
        • 전자금융감독규정
        • 신용정보법
        • 온라인투자연계금융업법
      • 창업
        • 외식업 관련
        • 임대업 관련
        • 유통업 관련
        • 세무 관련
        • 마케팅 관련
        • 기타 지식
        • 트렌드
        • Youtube
      • IT기술 관련
        • 모바일
        • 윈도우
        • 리눅스
        • MAC OS
        • 네트워크
        • 빅데이터 관련
        • A.I 인공지능
        • 파이썬_루비 등 언어
        • 쿠버네티스
        • 기타 기술
      • 퍼블릭 클라우드 관련
        • Azure
        • GCP
        • AWS
      • 정보보안 관련
        • QRadar
        • Splunk
        • System
        • Web
      • 기타 N
        • 세상 모든 정보 N
        • 서적
      • 게임 관련
        • 유니티
      • 부동산
      • 맛집 찾기
        • 강남역
        • 양재역
        • 판교역
        • ★★★★★
        • ★★★★
        • ★★★
        • ★★
        • ★
      • 결혼_육아 생활
        • 리얼후기
        • 일상
        • 육아
        • 사랑
        • Food
      • 영어
        • 스피킹
        • 문법
        • 팝송
        • 영화
      • K-컨텐츠
        • 드라마
        • 영화
        • 예능
      • 독서
      • 프로젝트 관련 조사
        • 시스템 구축
        • 로그 관련
        • 웹
        • APT
        • 모의 해킹
        • DB
        • 허니팟
        • 수리카타
        • 알고리즘
        • FDS
      • 기업별 구내 식당 평가
        • 한국관광공사
        • KT telecop
        • KT M&S
        • KT powertel
        • KT cs 연수원
        • 진에어
      • 대학 생활
        • 위드윈연구소
        • 진로 고민
        • 채용정보
        • 자동차
        • 주식
        • 악성코드
        • 게임 보안
      • 쉐어하우스
  • 블로그 메뉴

    • 홈
    • 게임 관련
    • IT 기술 관련
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    판교
    수제버거맛집
    상호관세
    맛집
    수제버거
    무역전쟁
    런치
    AWS
    수제버거존맛
    점심
    마케팅
    보안가이드
    쥬쥬랜드
    복리후생
    돈까스
    이재곧죽습니다
    판교역
    판교맛집
    대통령
    유니티
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
호레
[PHP] 문자열 필터링 함수(ereg, eregi...) 취약점을 이용한 우회
상단으로

티스토리툴바