분류 전체보기 155

[빡공팟 5기] W5 : DVWA 실습 - File Inclusion

[File Inclusion 의 정의] File Inclusion 은 파일 삽입 취약점이라고 한다. 이는, 악성 스크립트를 삽입한다면 해당 페이지가 악성 코드를 실행하게된다. [File Inclusion 의 종류] 1. LFI(Local File Iclusion) : 공격자가 공격 대상 서버에 업로드 되어 있는 파일을 실행하여 공격에 활용하는 취약점이다. -> include, require 등의 함수가 활성화 된 페이지 확인 2. RFI(Remote File Inclusion) : 공격자가 외부 서버에 있는 원격 파일을 URL 파라미터에 포함시키고 전달하여 실행한다. -> 공격할 대상 페이지 URL 에 파라미터에 원격지 웹 쉘 경로를 삽입한다. 3. 경로 제한, 파라미터 변조, 경로 접근, 파일 실행 등..

TeamH4C 2022.10.23

[빡공팟 5기] W5 : DVWA 실습 - CSRF

[CSRF 취약점의 정의] XSS 와 혼동하기 쉬운데 (일단 필자가 가끔 혼동함) XSS 는 사용자의 요청을 변조하는 것이라면 CSRF 는 웹 브라우저의 요청을 변조하는 것이다. 일단 이 공격은 사용자가 해당 링크를 눌러야 성립이 된다. 인증된 사용자가 링크를 누르면 쿠키를 함께 전송하여 의도하지 않은 행위를 하게 된다. [실습 내용] admin 의 비밀번호를 바꿔보자. [초기 화면] - 새로운 비밀번호를 입력하고 새로 입력한 비밀번호를 확인하는 창이다. - 해당 칸에 입력을 다 하고 버튼을 누르면 비밀번호가 변경된다. - 이런식으로 변경이 완료된다. - 참고로 이 기능에서 입력받는 곳에서도 문제가 있다. - 현재 로그인 된 계정의 비밀번호를 다시 한번 묻지 않는 것이다! 그렇다면 로그인이 된 상태에서 ..

TeamH4C 2022.10.23

[빡공팟 5기] W5 : DVWA 실습 - Command Injection

[Command Injection 공격의 정의] 시스템 함수 호출이 진행될 때 사용자 입력에 메타 문자를 사용하여 추가적인 명령어를 수행하게끔 해서 의도하지 않은 행위를 하게 한다. -> 시스템 함수는 서버의 권한으로 호출되기 때문에 중요한 파일을 읽어낼 수도 있다. [연계 공격] 1. 바인드 쉘 : 취약한 서버의 포트가 열렸을 때 (Listen 상태) 해당되는 포트에 접속하여 쉘을 생성하는 것이다. 2. 리버스 쉘 : 해커 쪽의 포트를 열어 취약한 서버 쪽에서 접속하여 쉘을 생성하는 것이다. -> 방화벽을 뚫기 위해서 사용함. [공격을 보안하는 방법] 1. 개발자는 입력 값에 대해 메타 문자의 유무를 확실하게 검사한다. 2. 시스템 메타 문자를 해석 하지 않고 그대로 사용하는 함수를 사용해야 한다. [..

TeamH4C 2022.10.23

[빡공팟 5기] W5 : DVWA 실습 - Brute Force

[DVWA 실습환경] 가상머신에서 kali Linux 로 Docker 를 이용하여 서버를 구축했다. [Brute Force 공격의 정의] 무차별 대입 공격이라고 불리며 특정한 암호 값을 알아내기 위해서 가능한 값을 모두 대입하는 것을 말한다. 하지만, 비밀번호의 자릿수가 길고 복잡한 경우에는 시간이 매우 오래 걸리고 컴퓨팅 성능이 중요하다. [공격의 유형] 일반적인 공격 : 가능한 모든 조합을 시도하는 것이다. 1. 역 무차별 대입 공격 : 많은 계정을 대상으로 하며, 소수의 흔한 비밀번호를 반복적으로 시도하는 것이다. 2. 인증 정보 스터핑 : 사이트 또는 서비스에서 훔친 사용자 이름과 비밀번호를 사용하여 다른 서비스의 계정을 하이재킹하는 것이다. 3. 사전 공격(Dictionary) : 사람들이 많이..

TeamH4C 2022.10.18

[빡공팟 5기] W4 : Web Hacking 로드맵 총 정리 +) NoSQL Injection 포함

티스토리 오류로 인해 노션으로 작성한 것을 삽입했습니다. 4주차 과제 느낀점 보안 동아리 활동을 하면서 여름 방학 때 라이트업을 하기 위해 문제 풀이를 진행했지만 제 힘으로 풀기보다는 여러 자료들을 참고하면서 풀었습니다. 그래서인지 중간에 빠진 개념들이 많았고, 동아리 발표 때도 기초가 많이 부족한 것 같다고 얘기를 들었습니다. 그런데 이번 과제를 통해서 웹 해킹 기초 로드맵을 정독하고 정리하면서 쿠키와 세션의 차이를 명확히 설명하지 못했는데 얼마 전 친구에게 어떻게 서버가 사용자를 인증하는 지 설명할 수 있을 정도가 되었습니다. 대략적으로 알고 있었던 개념들이 정확히 잡혀가는 거 같아 매우 뿌듯했고, 또한 로드맵을 진행하면서 부족한 부분도 많이 보였습니다. 앞으로도 부족한 개념을 채워나가기 위해 열심히..

TeamH4C 2022.10.18

[빡공팟 5기] W4 : Web Hacking 로드맵 - STAGE 8 - SSRF

웹 개발 언어는 HTTP 요청을 전송하는 라이브러리를 제공한다. 각 언어별 HTTP 라이브러리는 아래와 같다. PHP : php-curl NodeJS : http Python : urllib, requests 이러한 라이브러리는 HTTP 요청을 보낼 클라이언트 뿐만 아니라 서버와 서버간 통신을 위해 사용되기도 한다. 일반적으로 다른 웹 애플리케이션에 존재하는 리소스를 사용하기 위한 목적으로 통신한다. 예를 들어, 마이크로서비스 간 통신, 외부 API 호출, 외부 웹 리소스 다운로드 등이 있다. 최근 웹 서비스들은 관리 및 코드 복잡도를 낮추기 위해서 마이크로서비스들로 웹 서비스들을 구현하는 추세이다. 이때, 각 마이크로서비스는 주로 HTTP, GRPC 등을 사용하여 API 통신을 한다. 서비스 간 HTT..

TeamH4C 2022.10.18

[빡공팟 5기] W4 : Web Hacking 로드맵 - STAGE 7 - File Vulnerability

ServerSide: File Vulnerability 이용자가 업로드한 파일을 데이터베이스에 저장하지 않고 서버의 파일 시스템에 저장하는 것이 개발하기 쉽고, 관리의 효율도 높다. 하지만 이를 이용하여 중요 파일을 다운로드 하거나 악성 웹셸 파일을 업로드하여서 악의저인 코드를 실행시킬 수 있는 취약점이 발생하기도 한다. 따라서, 이와 관련된 취약점은 파일 업로드 취약점(File Upload Vulnerability), 파일 다운로드 취약점(File Download Vulnerability)가 있다. 파일 업로드 취약점(File Upload Vulnerability) 웹 서비스를 통해 이용자 파일을 서버의 파일 시스템에 업로드 하는 과정에서 발생한다. 특히, 이용자가 업로드 될 파일의 이름을 정할 수 있..

TeamH4C 2022.10.17

[빡공팟 5기] W4 : Web Hacking 로드맵 - STAGE 6 - Command Injection

ServerSide: Command Injection 다양한 웹 애플리케이션 제작용 언어는 시스템에 내장되어 있는 프로그램들을 호출할 수 있는 함수를 지원한다. PHP : system Node JS : child_process Python : os.system 위와 같은 함수들은 전달된 인자를 셸 프로그램에 전달해서 명령어를 실행한다. system("cat /etc/passwd") 를 호출할 때, 셸 프로그램으로 cat /etc/passwd 를 실행한 것과 같다. 시스테 함수를 사용하면 이미 설치된 소프트웨어를 쉽게 이용할 수 있지만, 함수의 인자를 셸의 명령어로 전달하면 치명적인 취약점으로 이어진다. 이를 Command Injection 취약점이라고 한다. Command Injection 이용자의 입력..

TeamH4C 2022.10.17

[빡공팟 5기] Web Hacking 로드맵 - STAGE 5 - Non-Relational DBMS

Background : Non-Relational DBMS 관계형 데이터베이스는 복잡하고 저장해야하는 데이터가 많아진다면 용량의 한계가 생길 수 있다. 이를 해결하기 위한 것이 비관계형 데이터 베이스, Non-Relational DBMS (NRDBMS, NoSQL) 이다. 그러나 NoSQL 도 마찬가지로 이용자 입력값을 통해서 동적으로 쿼리를 생성하여 데이터를 저장하므로 문제점이 발생할 수 있다. NoSQL의 개념과 문법 NoSQL의 개념 : SQL 을 사용하지 않고 복잡하지 않은 데이터를 저장하여 단순 검색 및 추가 검색 작업을 위해서 매우 최적화된 저장 공간이다. 그러나 Redis, Dynamo, CouchDB, MongoDB 등 다양한 DBMS 가 존재하므로 각각의 구조와 사용 문법을 익혀야한다. ..

TeamH4C 2022.10.14

[빡공팟 5기] W4 : Web Hacking 로드맵 - STAGE 5 - SQL Injection

ServerSide: SQL Injection SQL Injection DBMS 에서 사용하는 쿼리를 임의로 조작하여 데이터베이스의 정보를 획득하는 공격이다. 인젝션 공격은 이용자의 입력값이 애플리케이션 처리 과정에서 구조나 문법적인 데이터로 해석되어 발생하는 취약점을 의미한다. 조작된 쿼리로 인증을 우회하거나, 데이터베이스의 정보를 유출할 수 있다. SELECT * FROM user WHERE user_id='admin' 위 쿼리를 보면 user_pw 조건문이 없는 것을 확인할 수 있다. 이 쿼리를 통해 질의하면 DBMS 는 ID 가 admin 인 계정의 비밀번호를 비교하지 않고 해당 계정 정보를 반환하므로 이용자는 admin 계정으로 로그인이 가능하다. 이 아이디어를 기본으로 깔아놓고 이해하면 더 쉽..

TeamH4C 2022.10.14