Project/Web Application-모의해킹(16)
-
[Web Application-모의해킹] 디렉터리 인덱싱 : 시큐어 코딩(디렉터리 내 초기 페이지 설정) #4-2
시큐어 코딩 : 디렉터리 내 초기 페이지 설정 1) 개요 Project:Web Site 웹 사이트 upload_folder와 upload_folder/사용자 계정 디렉터리에서 발견된 디렉터리 인덱싱 취약점을 방지하기 위하여 대응 방안 중 하나인 디렉터리 내 초기 페이지 설정을 적용시켜 실제로 디렉터리 인덱싱 취약점을 방지할 수 있는지 확인한다. 2) 방법 Project:Web Site 웹 사이트에서 upload_folder와 upload_folder/사용자 계정은 해당 웹 사이트에서 업로드된 파일이 저장되는 위치다. 디렉터리 인덱싱 취약점이 발견된 디렉터리인 upload_folder 디렉터리는 단순하게 초기 페이지인 index.php 파일을 작성하면 해결되지만 upload_folder/사용자 계..
2024.04.30 -
[Web Application-모의해킹] 디렉터리 인덱싱 : 대응 방안 #4-1
대응 방안 (feat.주요통신기반시설) 1) 점검 방법 디렉터리 인덱싱 취약점을 점검하는 방법은 다음과 같다. URL 경로 중 확인하고자 하는 디렉터리까지만 주소창에 입력하여 인덱싱 여부 확인디렉터리 끝에 %3f.jsp 문자열을 붙여 디렉터리 인덱싱이 되는지 확인 2) 보안설정방법 디렉터리 인덱싱 취약점에 대한 대응 방안은 다음과 같다. 웹 서버 환경설정에서 디렉터리 인덱싱 기능 제거 3) 대표적인 대응 방안 디렉터리 내 초기 페이지 설정웹 서버 설정 파일 변경 디렉터리 내 초기 페이지 설정 디렉터리 리스팅 취약점은 웹 서버 내 각 디렉터리마다 초기 페이지가(index 페이지) 따로 설정 혹은 작성되어있지 않거나 웹 서버 설정에서 디렉터리 리스팅을 허락하도록 설정했을 경우 디렉터리 내 파..
2024.04.30 -
[Web Application-모의해킹] SQL Injection : 시큐어 코딩(Prepared Statement) #3-4
시큐어 코딩 : Prepared Statement 1) 개요 Project:Web Site 웹 사이트 로그인 페이지 user_id 파라미터에서 발견된 SQL Injection 취약점을 방지하기 위하여 대응 방안 중 하나인 Prepared Statement 기능을 구현하고 적용시켜 실제로 SQL Injection 공격을 방지할 수 있는지 확인한다. 2) 방법 Prepared Statement 기능은 사용자 입력 값과 마찬가지로 Client Side에서 구현을 하게 되면 공격자에 의해 변조될 가능성이 존재하므로 보안을 위해 Server Side에서 구현을 한다. 3) 시큐어 코딩 [1] login_proc.php 페이지 전문12345678910111213141516171819202122232425..
2024.04.27 -
[Web Application-모의해킹] SQL Injection : 시큐어 코딩(에러 메시지 출력 방지) #3-3
시큐어 코딩 : 에러 메시지 출력 방지 1) 개요 Project:Web Site 웹 사이트 모의해킹으로는 발견되지 않았지만 Error Based SQL Injection 취약점을 방지하기 위한 대응 방안으로 에러 메시지 출력을 방지하는 방법을 알아본다. 2) 방법 PHP에서는 php.ini 파일에서 에러 메시지 출력 여부를 설정할 수 있다. php.ini 파일에서 'display_errors = OFF'로 변경하거나 특정 페이지만 에러 메시지 출력 방지를 원할 경우 상단에 ini_set('display_errors', '0'); 코드를 입력한다. 3) 시큐어 코딩 [1] php.ini 내 display_errors php.ini 파일에서 display_errors를 찾게 되면 기본값이 OF..
2024.04.27 -
[Web Application-모의해킹] SQL Injection : 시큐어 코딩(사용자 입력 값 검증) #3-2
시큐어 코딩 : 사용자 입력 값 검증 1) 개요 Project:Web Site 웹 사이트 로그인 페이지 user_id 파라미터에서 발견된 SQL Injection 취약점을 방지하기 위하여 대응 방안 중 하나인 사용자 입력 값 검증 로직을 구현하고 적용시켜 실제로 SQL Injection 공격을 방지할 수 있는지 확인한다. 2) 방법 사용자 입력 값 검증은 Client Side에서 구현을 하게 되면 공격자에 의해 변조될 가능성이 존재하므로 보안을 위해 Server Side에서 구현을 한다. 또한 검증 필터링 방식은 블랙 리스트 기반 필터링 대신 보안적인 측면에서 더 강한 화이트 리스트 기반 필터링 방식을 사용한다. 적용 대상이 로그인 페이지의 user_id 파라미터이므로 알파벳 대소문자 및 숫자만..
2024.04.26 -
[Web Application-모의해킹] SQL Injection : 대응 방안 #3-1
대응 방안 (feat.주요통신기반시설) 1) 점검 방법 SQL Injection 취약점을 점검하는 방법은 다음과 같다. 사용자 입력 값에 특수문자나 임의의 SQL 쿼리를 삽입하여 DB 에러 페이지가 반환되는지 확인사용자 입력 값에 임의의 SQL 참, 거짓 쿼리를 삽입하여 참, 거짓 쿼리에 따라 반환되는 페이지가 다른지 확인로그인 페이지에 참이 되는 쿼리를 전달하여 로그인되는지 확인 2) 보안설정방법 SQL Injection 취약점에 대한 대응 방안은 다음과 같다. SQL 쿼리에 사용되는 문자열의 유효성 검증 로직 구현시스템에서 제공하는 에러 메시지 및 DBMS에서 제공하는 에러 코드가 노출되지 않도록 예외 처리Prepared Statement 3) 대표적인 대응 방안 사용자 입력 값 검증 로직 ..
2024.04.25