XPath Injection
Web/Web Hacking Techniques
XPath?XML이 과거부터 데이터 저장과 교환에 널리 사용되며, XML 문서 내 데이터를 검색 및 추출하기 위한 표준 질의 언어로 XPath가 도입되었다. SQL 뿐 아니라 XML을 통해서도 구성 정보, 데이터베이스, 외부 서비스 연동 등에 사용되며, 이러한 XML 문서에서 원하는 노드를 선택하기 위해 XPath 질의가 많이 사용된다.XPath의 경우 XML의 데이터를 조회하고 필터링하기 위한 강력한 도구이며, 웹 개발에서는 데이터 처리 흐름의 일부로 여저히 활용되고 있다.XPath 사용 목적과 필요성웹 서비스 통신(SOAP API 등)설정 파일 관리데이터베이스 대체인증/권한 관리 파일SSO 연동DB대신 XML 파일을 계정 정보 저장소로 활용하는 경량 시스템, 임베디드 장비, 구형 시스템등에서 자주 보..
PHP Functuion (mysql_real_escape_string OR Magic Quotes) Bypass
Web/Web Hacking Techniques
두 함수는 무슨 역할을 하는 함수인가?두 함수의 공톰점은 PHP에서 사용되는 함수이며, 주로 SQL Injection 을 방지하기 위해 사용되는 함수이다. 쉽게 설명해서 입력값에 ‘(싱글쿼터), “(더블쿼터), (역슬래쉬), 등등 악의적인 쿼리로 이어질 수 있는 입력값이 들어오면 이스케이프 문자인 (역슬래쉬)를 자동으로 붙여 공격을 방지한다. mysql_real_escape_string 함수의 경우 PHP 7.0.0 버전 이전에 사용되었으며, 이후 버전에서는 사용되지 않으며, 7.5.0 이후의 버전부터는 완전히 삭제되었다. 또한 Magic Quotes 함수 또한 PHP 5.3.0 버전부터 비활성화 되어 5.4.0 버전 이후에 완전 제거 되었다.Bypass입력값 앞에 자동으로 \가 생성되지만, 이 때 \앞..
PHP Type Juggling Magic Hash
Web/Web Hacking Techniques
Type Juggling 이란?PHP는 Python, Javascript와 같은 언어와 동일하게 동적 언어이다. 이는 프로그램이 실행되는 동안 변수 유형을 검사하게되는데, PHP에는 Type Juggling라는 기능이 존재한다. 다양한 유형의 변수를 비교하는 동안 PHP는 공통적이고 비교 가능한 유형으로 변환시킨다. 즉 정수 7과 문자열”7”을 비교할 때 7 == “7” 은 True를 반환하게 된다. 다른 경우로 “7 apple” == 7 이 또한 True를 반환하게된다. 이는 == 를 통한 비교를 수행하기 떄문에 발생하는 취약점이다. PHP 에서는 두 값을 비교하는 방식으로 == 와 === 이 존재한다. 위 그림을 보게 되면, == 방식을 사용하여 비교하는 경우매우 느슨하게 두 값을 비교하며, 다양한 ..