1) XXE Injection이란 무엇인가?XML External EntityXML 외부 개체 주입 → XXE Injection XML : 데이터를 효율적으로 주고 받기 위해 만들어진 마크업 언어클라이언트와 서버가 통신할때 어떤 데이터 형식으로 주고 받을지 결정하게되는데, 그 형식이 XML 이다.최근에는 XML → JSON 으로 데이터 형식이 많이 변경되었다. (JSON 등장 이후 XML 활용빈도 줄어듬) Entity : 개체 (특정 문자열을 사용할 수 있도록 하는 상용구 역할, 참조) (DTD에 대한 이해가 필요) XXE Injection이란XML을 통해 데이터를 주고 받는 기능에 대해서 외부 개체를 주입하는 공격 (외부 개체 참조 - 외부 파일들을 호출)이를 통해 서버 내 자원(설정파일, 소스코드 등..
1) OS Command Injection이란 무엇인가?시스템 명령어(운영체제 명령어)를 주입하는 공격사용자 입력값에 시스템 명령어를 주입해서 원격으로 시스템 명령어를 실행할 수 있는 공격이다.공격자 의도대로 서버를 제어할 수 있게 된다.웹 서버에 대해 제어권을 얻는다 = 시스템 명령어 실행이 가능하다 = 서버 내 중요정보 열람, 수정, 삭제 가능해당 공격을 통해 웹 서버가 랜섬웨어 공격의 유포지로 활용될 수 있으며, 서버 내 중요파일이 랜섬웨어에 감염될수도 있다. 데이터베이스로 침투, 내부망에 침투하여 기밀 정보를 열람, 직원 PC를 감염시키는 등의 다양한 추가 공격이 가능하다.공격자는 이러한 공격을 통해 기업으로부터 돈을 뜯어낸다.시스템 명령어 실행을 통해서 단순히 해당 공격에서 끝나는 것이 아닌 2..
대응 방안 개요일반적인 방법- 시큐어 코딩 → 근본적인 대응 방안- 인라인 보안솔루션(IPS,WAF 등) → 한계가 있다. (우회 할 수 있음) 시큐어 코딩1. Prepared Statement 사용2. 사용자 입력 값 타입에 따른 입력 값 검증 로직 구현3. 길이 제한 Prepared Statement 가 적용되어 있다면 굳이 2,3번을 적용할 필요가 없다.3번 길이제한은 단독으로 사용하면 안된다. → 1번 or 2번과 같이 적용해야 한다. 대응 방안(1) - Prepared Statement 사용Prepared Statement 는 SQL Injection에 대한 방어 뿐만 아니라 성능적인 이점에 의해서 많이 사용된다.하지만 적절하게 사용하지 않는 경우 Prepared Statement 또한 취약..
웹 해킹이란 무엇인가?웹 서비스 상에서 발생될 수 있는 모든 보안 허점을 이용해 악의적인 행위를 하는 것= 웹 어플리케이션 해킹 웹 어플리케이션이란? = 웹 프로그래밍 언어(JSP, PHP, ASP 등)로 작성된 프로그램, 어플리케이션= 웹 브라우저를 통해서 방문하는 웹 사이트 해커들의 타겟, 웹 서비스방화벽 도입 후 웹 해킹 빈도가 높아졌다.방화벽은 IP와 Port를 기반으로 패킷을 필터링 한다. → OSI 7계층의 3,4계층 웹 서비스(대외 서비스) : HTTP(80), HTTPS(443)그 외 서비스: SSH(22), Telnet(23), FTP(21) 등웹 서비스를 제외한 나머지 서비스는 굳이 필요하지 않으므로 방화벽에서 차단한다.그러므로 웹 서비스에 대한 공격이 들어올 수 밖에 없고, 그에 ..
취약 환경 구축기존에 XAMPP를 APM Setup 대신 사용하여 MySQL 실습을 진행하였으나, XAMPP로 취약 환경 구축 시 강의와 환경이 달라 에러가 발생하여, 강의와 동일한 환경 구축을 위해서 APM Setup으로 환경 구축을 다시한다.설치 후 C:\APM_Setup 경로의 php.ini 파일 내 magic_quotes_gpc 를 Off 로 변경해준다.magic_quotes_gpc는 GET, POST, 쿠키 등 사용자 입력값을 이스케이프 처리를 해준다는 의미다.' 를 입력하면 \' 가 출력된다는 의미이다. magic_quotess_gpc = Off 로 변경 후 Apache를 재기동한다.APM Setup 콘솔 Server status의 Apache를 Stop 후 다시 Start 한다. Apache..