본문 바로가기

전체 글

(133)
시큐어 코딩 (Command Injection) Command Injection 이란? 적절한 검증 절차를 수행하지 않은 사용자 입력 값이 운영체제 명령어의 일부 또는 전부로 구성되어 실행되는 경우, 의도하지 않은 시스템 명령어가 실행되어 부적절하게 권한이 변경되거나 시스템 동작 및 운영에 악영향을 미치는 공격. 일반적으로 명령어 라인의 인수나 스트림 입력 등 외부 입력을 사용하여 시스템 명령어를 생성하는 프로그램에서 적절한 처리를 해주지 않으면, 공격자가 원하는 명령어 실행이 가능하게 된다. Command Injection 공격 원리 1. 공격자가 입력 값에 ';', "||", "&&" 등을 포함시켜 공격자가 원하는 명령어를 삽입 2. 웹 서버에서 공격자가 요청한 명령이 실행 Command Injection 공격을 당했을 경우, 공격자가 웹 서버에 ..
시큐어 코딩 (Cross-Site Scripting) XSS (Cross-Site Scripting) 이란? 웹 페이지에 악의적인 스크립트를 포함시켜 사용자 측에서 악의적인 실행되게 유도하는 것. 흔히 XSS 공격은 외부 입력에 대해 검증을 하지 않는 웹 사이트에서 게시판에 스크립트 삽입이 가능한 경우 주로 발생한다. 즉, 공격자가 악성 스크립트 구문을 포함하여 게시물을 업로드 한 후, 다른 사용자가 해당 게시물을 열람하는 경우 접속자의 권한으로 부적절한 스크립트가 수행되어 정보 유출 등의 공격이 발생할 수 있다. (XSS 공격은 흔히 다른 사용자의 쿠키를 탈취하는데 주로 사용된다.) (Stored) XSS 공격 원리 1. 공격자가 악성 스크립트를 포함한 게시물을 업로드 (Posting, 악성 스크립트가 서버에 저장됨) 2. 다른 유저가 해당 게시물을 열람..
시큐어 코딩 (Resource Injection) Resource Injection 공격이란? 외부 입력 값을 검증하지 않고 시스템 자원에 대한 식별자로 사용하는 경우, 공격자는 입력 값을 조작하여 시스템이 보호하는 자원에 임의로 접근하거나 수정할 수 있고 잘못된 입력값으로 인해 시스템 자원 사이에 충돌을 불러 일으킬 수 있다. 포트 번호를 사용자로부터 입력받는 경우를 예로 들어보자. [안전하지 않은 코드] public void service() throws IOException { int def = 1000; ServerSocket = serverSocket ; Properties props = new Properties(); String fildName = "file_list"; FileInputStream in = new FileInputStrea..
시큐어 코딩 (SQL Injection) SQL Injection 공격이란? 데이터베이스(DB)와 연동된 웹 어플리케이션에서 입력된 데이터에 대한 유효성 검증을 하지 않을 경우, 공격자가 입력 폼 및 URL 입력란에 SQL 문을 삽입하여 DB 정보를 조회하거나 조작할 수 있는 공격이다. SQL Injection 공격 원리 1. 공격자가 SQL Injection을 통해 조작된 Request를 보냄 2. 웹 서버는 데이터베이스에 Query 문을 전달 3. 데이터베이스는 조작된 SQL Query 실행 4. 데이터베이스에서 실행된 결과를 웹서버에게 전달 5. 웹 서버는 실행된 결과(공격 결과)를 공격자에게 전달 SQL Injection 예시 예를 들어, admin 계정 (id: admin, pw: admin)이 존재한다고 가정해보자. 만약 사용자가 아..
[DVWA] Command Injection Command Injection This is an attack method calling a system command unintended by sending the data, after modifying an argument value of the Application calling the system command. When calling the system command to deal with specific data on Web Application, the attack often was taken place. If the command injection is used, a black hacker can upload a malicious script or files on the system by..