APACHE의 magic_quotes_gpc 옵션은 GET/POST/Cookie 데이터가 이스케이프 처리됨 -> '(싱글쿼터) : 문장의 시작과 끝 'i'm~~~ 할때 문장안에 싱글쿼터가 들어감 -> 만약 위 기능 미사용시 i에서 문장이 끝남 ->특정 기능을 하는 문자를 일반 문자의 기능으로 변환하는것을 이스케이프라고 부름 -> 이때 처리 방식은 \(역슬래시)' 싱글쿼터'i\'m ~~~~' ->방식으로 문장구성'는 \'" 는 \"\ 는 \\ -> 이외에 다른 문자들도 많음하지만 이런 이스케이프 때문에 문제도 많이 생기기 때문에 차후 버전에서는 magic_quotes_gpc 기능을 없애버렸음 SQL 조건문DBMS 별로 공통된 CASE WHEN 구문, ORACLE 에는 DECODE, MYSQL은 IF 함..
1. 에러 발생 유무 확인 - 에러는 공격자에게 정보를 주는 정보 제공자(힌트)의 역할을 함 에러를 통해 알수있는 부분 - 백엔드 데이터베이스의 DBMS가 어떤 종류인지 알 수 있음 - 어느 정도의 취약유무도 알 수 있음 - 에러기반 공격이 가능한 지 알 수 있음 - 기타 정보 획득 가능 - 어플리케이션의 소스코드, 경로값도 노출되는 경우가 빈번히 발생함 사이트 자체에 에러가 발생이 되는지 dbms에 친절한 에러가 노출이 되는지, 어플리케이션 에러가 발생된다는지 이런 에러 정보를 확인할 필요가 있음 오늘날의 대부분 웹서비스들은 상세 에러 노출에 대해서 대부분 조치가 되어있음 웹 앱 에러도 OK에러 자체가 발생되는게 공격자 입장에서는 가능성이 있다는 것을 암시함 2. 입력값에 대한 데이터값 확인 -..
1. 키워드 필터링 우회방화벽이 차단하는 키워드를 다른 표현으로 바꾸거나 필터링 규칙 허점 이용 1) 대소문자 혼용: SELECT를 sELecT, SeLeCt 등으로 바꿔서 탐지 회피 2) 단어 대체 방법: 일부 방화벽에서 SQL을 제거하는 방식을 이용 ex) 1+UNunionION+SEselectLECT+1,2,3-- (어떤 WAF는 소문자 "union"과 "select"를 제거하게 되고 대문자 "UNION"과 "SELECT"가 전달될 것임) 2) 주석(Comments) 활용: 쿼리 중간에 주석을 삽입하여 키워드를 분리. ex) UNION SELECT -> UNION /*!SELECT*/(MySQL에서 /*! */안의 코드는 실행됨) 3) 공백 문자 대체: 공백을 다른 아스키코드 문자로 대체(htt..
1. URL 인코딩 URL 인코딩을 설명하기 위해 URL 부터 시작해보자URL (Uniform Resource Locator)은 네트워크상에서 자원이 어디 있는지를 알려주기 위한 규약이다.이 규약은 팀 버너스 리와 IETF의 URI 워킹 그룹에 의해 1992년 IETF Live Documents Birds of a feather에서 시작한 협업의 산물로서 RFC 1738에 정의되었다. (위키백과, https://ko.wikipedia.org/wiki/URL) 구성 요소는 아래와 같다.더보기 1) 프로토콜(Scheme): https:// - 데이터 전송 방식을 정의하며, http 또는 보안이 강화된 https가 가장 흔히 사용된다. 2) 호스트(Host): www.google.com - 접속하려는 웹 서..
