Security/Web Hacking

URL 접근 제한 미흡 취약점이란?인증 혹은 인가되지 않은 사용자가 접근 제한된 페이지에 접근하게 되는 취약점이다.인증 혹은 인가된 사용자가 접근 가능한 페이지에 대해 접근 제한이 존재하지 않거나 존재하지만 우회 포인트가 존재하여 발생한다. 💡 인증과 인가인증이란 로그인과 같이 인증된 사용자인지의 여부를 파악하는 것을 말하고, 인가란 특정 사용자가 해당 작업에 대한 권한의 존재 여부를 파악하는 것을 말한다. 공격 원리 분석파리미터 변조 취약점과 동일하게 공격 유무를 파악하기가 어렵다.공격자는 페이지의 URL을 유추해아 한다.이때 사전 대입을 통한 수동적 유추 방식과 자동화 도구를 통한 유추 방식이 있다. 보통 네이밍 패턴이나 robot.txt를 통해 유추하게 된다. 대응 방안접근 제한이 필요한 부분에 ..
파라미터 변조 취약점이란?사용자 입력값인 파라미터를 변조하여 악의적인 행위를 하는 공격이다. 공격 원리 분석정상적인 동작 예시사용자 입력값인 id 파라미터를 통해 id 값에 해당하는 회원 정보를 반환한다. 공격동작 예시공격자는 사전 대입으로 id 파라미터 변조를 통해 사용자 정보를 반환받는다. 서버사이드에서는 공격 유무를 파악하기 어렵다. 따라서 어플리케이션 단에서 세션을 통해 검증해야 한다. 또한 사용자 입력값을 통해 사용자 아이디를 받아오기 보다는 세션을 통해 사용자 아이디를 받아와야 한다. 대응 방안1. 사용자 입력 값에 대한 검증사용자의 입력 값을 반드시 받아서 처리해야 하는 경우에는 사용자의 세션과 파라미터로 입력받은 사용자를 비교한다. 2. 세션을 통한 처리회원 정보 수정이나 마이페이지 조회의..
파일 업로드 취약점이란?파일 업로드 기능에 대해서 발생하는 취약점으로, 공격자는 비정상 파일을 서버에 업로드한다.정상 파일과 비정상 파일은 서버 사이드 스크립트로 작성된 웹쉘 코드이냐 아니냐로 구분된다.  악성 스크립트가 웹 서버에 업로드 된다면 업로드한 파일을 통해 시스템 명령어를 실행할 수 있게 되어 OS Injection과 동일한 효과를 발생시킬 수 있는 취약점이다. 하지만 OS Injection과 다르게 웹 서비스에서 파일 업로드 기능은 필수 기능이므로, 취약점이 발생할 확률이 매우 높다. 공격 원리 분석사용자로부터 파일명을 입력받는다.기존의 경로와 입력받은 파일명을 조합한다.서버에 파일을 업로드하기 위해 파일 출력이 수행된다.업로드된 악성 스크립트를 통해 웹쉘에 접근하게 된다. 웹쉘이란 무엇인가..
파일 다운로드 취약점이란?서버에 있는 파일에 다운로드하는 기능에 대해서 비정상적인 파일을 다운로드 받는 취약점이다.공격 대상은 바로 파일 다운로드 기능이다.정상적인 파일과 비정상적인 파일은 지정된 경로냐 지정된 경로가 아니냐에 따라 구분된다. 정상적인 파일은 지정된 경로에 있는 파일을 다운로드한다. 여기서 공격자는 경로 이동 문자를 삽입하여 경로를 변조하여 공격을 수행하고, 사용자에게 지정된 경로를 벗어난 비정상적인 파일을 다운로드하게 한다. 공격 원리 분석서버는 사용자로부터 파일 경로를 입력받는다. 이때 공격자는 경로 이동 문자가 삽입된 비정상적인 경로를 입력하여 서버에서 중요한 파일을 다운로드 시도한다. → ../../etc/passwd사용자 입력 값과 기존 경로가 조합된다. → /wetroot/up..
CSRF란?Cross-Site Request Forgery의 약어로, 공격자에 의해 사용자가 의도하지 않은 요청을 수행하는 공격이다. 사용자 정보 수정, 패스워드 변경, 회원 탈퇴, 게시글 작성/수정/삭제 등의 행위가 가능하다. 공격 원리 분석예시 1) 서버 1개공격자가 악성 스크립트를 게시글에 작성해 둔다.인증된 사용자가 해당 게시글을 읽으면 악성 스크립트에 의해 패스워드 변경 요청이 자동으로 발생한다. 이때 스크립트는 Client-Side Script로 구성되어 있다. 따라서 클라이언트가 웹 서비스에 패스워드 변경 요청을 하게 된다. 예시 2) 서버 2개공격자는 사용자에게 A라는 사이트의 회원 탈퇴를 요청하는 악성 스크립트를 게시글에 작성해 둔다.인증된 사용자가 해당 게시글을 읽으면 악성 스크립트에 ..
XSS란?XSS(Cross-Site Scripting)란 동적으로 출력하는 페이지에 대해 클라이언트 언어(Client Side Script)로 작성된 악의적인 스크립트를 삽입하여 비정상적인 행위를 하는 공격을 말한다. 서버 측 공격이 아닌 클라이언트 측 공격이다.Client Side ScriptHTMLCSSJS💡 CSS가 아닌 XSS인 이유CSS와 동의어가 되기 때문에 혼동이 발생하는 것을 막고자 Cross를 X로 표현하였다. 클라이언트 언어로 작성된 스크립트가 실행되면서 A라는 사이트에서 B라는 사이트로 이동되는 형식의 공격이다. 공격 대상1. 기능적인 공격 대상사용자 입력 값을 통해 동적인 웹페이지를 구성한다면 모든 기능이 공격 대상이 된다. 이는 잠재적인 XSS 위협에 노출로 이어진다.사용자 입력..
XXE Injection이란 무엇인가?XML External Entity(XML 외부 개체 주입)오늘 날에는 데이터를 주고받을 때 대부분 JSON을 사용하지만 아직도 XML을 사용하는 곳이 많이 존재한다. XML을 통해 데이터를 주고받는 기능에서 외부 개체 참조를 시도할 때 발생하는 취약점이다. 이를 통해 서버 내의 자원들을 무단 열람할 수 있게 된다. 공격 대상XML 파싱 기능이 있는 어플리케이션에 대해 공격을 시도한다.기존의 레거시 시스템에서는 메시지 바디에 XML 형태로 데이터가 전송되는 경우가 있다. 그런 경우 XML 파싱 기능이 존재함을 확인할 수 있다. 하지만 최근 기업들은 데이터 전송 포맷으로 JSON을 사용하기 때문에 공격 대상이 레거시 시스템을 운영하는 기존의 기업들로 한정된다. 따라서 ..
OS Command Injection이란? 운영체제 명령어 주입으로,원격으로 시스템 명령어를 실행하여 공격자 의도대로 서버를 제어하는 공격이다.DMZ 구간의 웹 서버의 취약점이 발생하여 공격자가 해당 서버의 제어권을 얻는다. 즉, 시스템 명령어 실행이 가능하다. 이는 시스템의 중요 정보 즉, 소스 코드 정보, 설정 파일 등의 읽기, 삭제, 수정 권한을 얻게 되는 것이다.  공격 대상 SQL Injection vs OS Command Injection SQL InjectionOS Command Injection공격 방식SQL 구문 삽입시스템 명령어 삽입공격 결과중요 데이터 탈취중요 데이터 탈취, 네트워크 침투, 서버 졈령위험도중상 💡 OS Command Injection이 SQL Injection보다 위..
jyjyjy25
'Security/Web Hacking' 카테고리의 글 목록