빡공팟 121

[빡공팟 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

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

RDBMS(Relations DataBase Management System) DBMS(DataBase Management System) 이란? DBMS 는 데이터베이스에 새로운 정보를 기록하거나 기록된 내용을 수정, 삭제하는 역할을 수행한다. DBMS 에는 다수의 사람이 동시에 데이터베이스에 접근할 수 있고, 검색 기능과 같은 복잡한 요구 사항을 만족하는 데이터를 조회할 수 있다는 특징이 있다. DBMS 의 종류에는 관계형, 비관계형이 있는데 이 둘의 차이점은 관계형은 행과 열의 집합인 테이블 형식으로 데이터를 저장하고, -> MySQL, MariaDB, PostgreSQL, SQLite 비 관계형은 테이블 형식이 아닌 키-값 형태로 값을 저장한다. -> MongoDB, CouchDB, Redis SQ..

TeamH4C 2022.10.14

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

ClientSide : CSRF CSRF(Cross Site Request Forgery)란? 사이트 간 요청을 위조하는 것으로 이용자를 속여서 의도치 않은 요청에 동의하게 하는 공격이다. 그럴듯한 웹 페이지를 만들어 이용자의 입력을 유도한 후, 이용자가 값을 입력하면 이를 은행이나 중요 포털 사이트 등으로 전송하여 마치 이용자가 동의한 것 같은 요청을 발생시킨다. 만약, 이용자가 자동 로그인의 기능을 사용하여 브라우저에 세션 쿠키를 저장하고 있었다면, 실제로 계좌 이체가 발생하거나 비밀번호 초기화가 발생할 수 있다. CSRF(Cross Site Request Forgery)의 동작 CSRF 공격에 성공하기 위해서는 공격자가 작성한 악성 스크립트를 이용자가 실행해야 한다. 이는 공격자가 이용자에게 메일을..

TeamH4C 2022.10.14