본문 바로가기

웹 해킹

(40)
[주통기반] 로컬 웹 서버 취약점 찾기 (정보 누출) 이번에는 주요정보통신기반시설 분석 웹 서버 취약점 9번째 정보 누출입니다. 정보 누출 취약점은 웹 서비스 이용 시 불필요한 정보가 누출되는 것을 말합니다. 웹 시스템에서 주요정보(개인 정보, 계정 정보, 계좌 정보 등)가 노출되거나 불필요한 정보가 사용자에게 노출되는 것입니다. 정보 누출로 인해 추가적인 공격의 정보를 제공해줄 수 있습니다. 1. 웹 서버 정보 노출 1) 웹 사이트에 접속합니다. 2) 웹 서비스 이용 패킷을 확인합니다. 요청 시 응답에 웹 서버의 정보가 노출되며 실제 웹 서버와 동일한 것을 확인할 수 있습니다. Apache/2.4.52 (Ubuntu) 웹 서버의 종류와 버전 심지어 운영체제까지 확인이 가능합니다. 이 정보들을 이용해 해당 버전의 알려진 취약점을 통해 2차 공격이 가능해집니..
[주통기반] 로컬 웹 서버 취약점 찾기 (디렉터리 인덱싱) 디렉터리 인덱싱은 웹 애플리케이션 이용 시 웹 브라우저에 디렉터리를 요청하면 특정 디렉터리의 리스트가 출력되는 취약점입니다. 특정 디렉터리의 초기 페이지(index 파일)가 디렉터리에 존재하지 않을 경우 발생하게 됩니다. 디렉터리 인덱싱 취약점은 디렉터리 내 파일 리스트가 출력되기 때문에 시스템의 구조가 노출되고, 중요한 정보가 포함된 파일이나 설정 파일 등이 노출될 수 있는 위험이 있습니다. 해당 정보등을 통해 중요한 정보가 노출되고 추가적인 공격에 대한 정보가 제공될 수 있습니다. 1. models 1) 웹 브라우저에 models 디렉터리를 검색합니다. 위 파일들은 게시글과 유저를 어떻게 관리할지 작성된 파일이기 때문에 노출 시 추가적인 공격에 대한 정보를 제공할 수 있습니다. 2. data 1) 웹..
[주통기반] 로컬 웹 서버 취약점 찾기 (SQL Injection) SQL Injection 은 웹에서 사용자의 입력 값으로 SQL 쿼리를 완성할 경우 데이터베이스에 접근하여 데이터를 처리할 때 발생할 수 있습니다. 사용자의 입력 값을 제대로 검증하지 않고 SQL 쿼리를 완성할 경우 사용자의 입력으로 악의적인 SQL 쿼리가 완성되게 하여 악의적인 데이터베이스 접근 및 조작할 수 있습니다. 1. 게시글 검색 기능 Category 게시글 검색 시 사용자의 입력으로 특정 게시글을 검색하는 SQL 쿼리를 생성합니다. 이 때 컬럼에 해당하는 파라미터에 SQL 문을 넣어 참과 거짓에 대한 응답 결과가 다른 것을 확인할 수 있습니다. 그러면, Blind SQL Injection을 통해 데이터베이스의 정보를 획득할 수 있습니다. 1) 게시글 페이지 접속 2) 게시글 검색한 후 검색 요..
웹 해킹 공부 일기장 12 - 2 (인가 취약점) 일단 인가란? 특정 권한을 부여하고 권한이 있는 사용자만 행동을 할 수 있게 하는 것입니다. 그럼 인가 취약점이란? 권한이 없는 행동을 할 수 있는 취약점을 말합니다. 인가 취약점의 대표케이스를 확인해보면서 알아보겠습니다. 1. 주석처리 & CSS display: none 으로 접근 제한 관리자만 해당 버튼을 이용할 수 있다고 합니다. 페이지를 확인해보니 해당 버튼을 주석처리하여 일반 사용자에게는 보여지지 않게 처리한것 같습니다. 해당 주석을 지우면 버튼을 보여지게 할 수 있을 것 같으니 주석을 지워보겠습니다. 주석을 지워주니 화면에 관리자만 사용 가능한 버튼이 나옵니다. 클릭 시 사용자에게 제공되지않은 행동을 할 수 있습니다. 이것뿐만 아니라 비슷하게 CSS를 사용하여 해당 태크를 안보이게 할 수 있는..
웹 해킹 공부 일기장 12 - 1 (인증 취약점) 이번 주차를 마지막으로 대표적인 웹 해킹 기법 정리를 마치도록 하겠습니다. 이때까지 공부했던 것을 알아보면 1. SQL Injection: SQL을 삽입하여 공격자가 원하는 SQL문 을 실행시키는 공격 2. XSS: 스크립트를 삽입하여 클라이언트 측에서 공격자가 원하는 스크립트를 실행시키는 공격 3. CSRF: 피해자가 서버로 공격자가 원하는 요청을 보내게하는 공격 4. File Upload: 공격자가 원하는 파일을 서버에 업로드할 수 있는 공격 5. File Download: 서버에서 공격자가 원하는 파일을 다운로드 할 수 있는 공격 간단하게 이런 공격이었다는 것만 정리해보았습니다. 이번에 할 것은 인증&인가 취약점입니다. 인증 취약점은 초반에 간단하게 하고 넘어갔는데 대표 케이스를 통해 다시 알아보겠..
웹 해킹 공부 일기장 11 - 2 (파일 다운로드) 파일 다운로드 취약점은 간단합니다. 파일을 다운로드할 때 임의의 원하는 파일을 다운로드하는 것입니다. 파일 다운로드 기능에서 만약 파일 경로를 받아 다운로드를 실행시켜 준다면 파일 경로에 ../ 로 디렉토리를 이동하여 원하는 파일을 다운로드 하는 것입니다. 파일 다운로드 취약점을 발견한다면 가장 먼저해야할 일이 소스 코드 다운로드입니다. 소스 코드를 확인할 수 있다면 공격자는 서버의 숨겨진 취약점들을 찾을 수 있습니다 1. 사진과 같이 파일 다운로드가 경로를 통해 해당 경로에 있는 파일을 다운로드 시켜주는 것 같습니다. 파라미터로 받는 경로를 조작하면 지금 다운로드해주는 기능의 download.php 파일의 소스코드를 확인할 수 있습니다. 이렇게 다른 곳에 있는 임의의 파일을 다운로드 할 수 있는 취약점..
웹 해킹 공부 일기장 11 - 1(파일 업로드) 저번 시간에 파일 업로드 취약점에 대해 알아보았습니다. 파일 업로드 취약점은 공격자가 임의의 파일을 업로드할 수 있는 공격입니다. 보통 웹쉘 파일을 업로드하여 서버에 원하는 명령을 내릴 수 있게합니다. 그리고 가장 중요한 것이 서버에서 실행을 할 수 있는 파일이어야 하며 공격자는 파일을 실행하기 위해서 해당 파일의 경로를 알고 있어야합니다. 저번 시간 마지막에 .jpg로 끝나는 파일은 절대 실행시킬 수 없다고 말했었습니다. 그렇기 때문에 webshell.php.jpg 파일을 업로드한다면 절대로 실행시킬 수 없습니다. 하지만 몇가지 특수한 상황에서 jpg 파일을 업로드 시 실행시킬 수 있는 방법이 있습니다. 아마, 인터넷에서 보신 jpg 파일 업로드로 웹쉘을 실행시키는 방법 중 하나일 것입니다. 1. we..
웹 해킹 공부 일기장 10 - 1 (File Upload 취약점) 이번 시간에 공부해볼 취약점은 파일 업로드 취약점입니다. 이 취약점은 이름에서 알 수 있듯 공격자가 원하는 임의의 파일을 서버에 업로드하는 공격입니다. 발생 원인을 알아보면 임의의 파일을 업로드 하는 것이기 때문에 파일 업로드 시 제대로된 검증이 이루어지지 않을 경우 발생하게 됩니다. 발생 위치 또한, 파일을 업로드 할 수 있는 곳입니다. 그럼 만약에 어떤 파일이든 업로드할 수 있다면 어떤 일이 일어날까요?? 1. 서버측 실행 파일을 업로드하여 파일을 실행시킨다. 2. HTML 파일을 업로드하여 서버의 도메인을 가지는 파일이 생성되어 피싱유도를 한다. 3. Deface 공격. 이는 index파일을 변경시키는 공격으로 메인페이지를 변경시킵니다. (자신이 공격을 성공함을 알림) 4. XSS 공격. XSS 취..