본문 바로가기

웹해킹

(10)
웹해킹 9주차 Path Traversal파일 업로드 취약점(File Upload Vulnerability)은 웹 서비스를 통해 이용자의 파일을 서버의 파일 시스템에 업로드하는 과정에서 발생하는 보안 취약점이며, 이용자가 업로드될 파일의 이름을 임의로 정할 수 있을 때 발생합니다. 파일 업로드 취약점은 크게 Path Traversal과 악성 파일 업로드로 분류됩니다. 파일 업로드를 허용하는 대개의 서비스는 보안을 위해 특정 디렉터리에만 업로드를 허용합니다. Path Traversal 취약점은 업로드에 존재하는 이러한 제약을 우회하여, 임의 디렉터리에 파일을 업로드할 수 있는 취약점을 말합니다.  from flask import Flask, requestapp = Flask(__name__)@app.route('/file..
웹해킹 7주차 MongoDB JSON 형태인 도큐먼트(Document)를 저장한다. 스키마를 따로 정의하지 않아 각 컬렉션(Collection)에 대한 정의가 필요하지 않습니다.JSON 형식으로 쿼리를 작성할 수 있습니다._id 필드가 Primary Key 역할을 합니다.이와 같은 특징들이 있다.  MongoDB 연산자Comparison, Logical,  Element, Evaluation 연산자가 있습니다. 각각 차례대로 보겠습니다.  ComparisonNameDescription$eq지정된 값과 같은 걸 찾는다.(equal)$in배열 안의 값들과 일치하는 값을 찾는다. (in)$ne지정된 값과 같지 않은 걸 찾는다.(not equal)$nin배열 안의 값들과 일치하지 않는 걸 찾는다(not in)  Logical..
웹해킹 6주차 데이터베이스 관리 시스템웹 서비스는 데이터베이스에 정보를 저장하고, 이를 관리하기 위해 DataBase Management System (DBMS)을 사용합니다. DBMS는 데이터베이스에 새로운 정보를 기록하거나, 기록된 내용을 수정, 삭제하는 역할을 합니다. Relational DBMSRelational DataBase Management System (RDBMS, 관계형 RDBMS)는 1970년에 Codds가 12가지 규을 정의하여 생성한 데이터베이스 모델입니다. RDBMS는 행 (Row)과 열 (Column)의 집합으로 구성된 테이블의 묶음 형식으로 데이터를 관리하고, 테이블 형식의 데이터를 조작할 수 있는 관계 연산자를 제공합니다. DBMS에서 관계 연산자는 Structured Query Lang..
웹해킹 4주차 Cross Site Scripting (XSS)XSS는 클라이언트 사이드 취약점 중 하나로, 공격자가 웹 리소스에 악성 스크립트를 삽입해 이용자의 웹 브라우저에서 해당 스크립트를 실행할 수 있습니다. 공격자는 해당 취약점을 통해 특정 계정의 세션 정보를 탈취하고 해당 계정으로 임의의 기능을 수행할 수 있습니다. 취약점은 SOP 보안 정책이 등장하면서 서로 다른 오리진에서는 정보를 읽는 행위가 이전에 비해 힘들어졌습니다. 그러나 이를 우회하는 다양한 기술이 소개되면서 XSS 공격은 지속되고 있습니다. 다음 장에서 XSS가 발생할 수 있는 상황과 종류에 대해서 알아보겠습니다. XSS 발생 예시와 종류XSS 공격은 이용자가 삽입한 내용을 출력하는 기능에서 발생합니다. 이러한 기능의 예로는 로그인 시 출력되는 ..
웹해킹 3주차 엔드포인트: /아래 코드는 인덱스 페이지를 구성하는 코드입니다. 해당 페이지에서는 세션을 통해 이용자를 식별합니다. 먼저 쿠키의 sessionid의 값을 통해 session_storage에서 해당 Session ID의 username을 조회합니다. index 페이지 코드@app.route('/') # / 페이지 라우팅 def index(): session_id = request.cookies.get('sessionid', None) # 쿠키에서 sessionid 조회 try: username = session_storage[session_id] # session_storage에서 해당 sessionid를 통해 username 조회 except KeyError: r..
웹해킹 1주차 웹인터넷을 기반으로 구현된 서비스 중 HTTP를 이용하여 정보를 공유하는 서비스를 웹이라고 한다. 정보를 제공하는 주체를 웹 서버 (Web Server), 정보를 받는 이용자를 웹 클라이언트 (Web Client) 라고 한다, 웹의 발전과 웹 보안의 중요성과거에는 단순히 정보를 보여주는 것에서 그쳤다면, 현재는 정보를 검색하고 직접 제품을 구매할 수 있도록 변화하였다. 그리고 웹에서 처리하는 정보 자산들이 많아짐에 따라 이들을 안전하게 보관하고 처리해야 할 필요성도 함께 증가하였습니다. 그래서 웹을 통한 정보의 교환 과정에서 이러한 민감한 정보들이 유출되거나 악용되지 않도록 보호하는 웹 보안의 중요성이 대두하고 있다. 웹 서비스, 프론트엔드와 백엔드웹서비스는 현재는 이용자의 요청을 해석하고 가공하여 필요..
8주차 웹해킹 6.읽기{topic["title"]}'def template(contents, content): return f''' WEB {liTags} {contents} Welcome Hello, Web {content} '''@app.route('/create/')def create(): return 'Create'def getContents(): liTags = '' for topic in topics: liTags = liTags + f'{topic["t..
3주차_웹해킹 [low]버프스위터에서 내용을 바꾸고 확인하면 성공한 걸 알 수 있다.  [medium]low단계처럼 할 시 위와 같이 나타난다. 확인한 결과 htmli_post.php 함수를 확인해야할 필요가 있다. 사용하는 xss_check는 get과 동일하며, 인코딩 방식을 이용한다.  [high]xss_check  3을 사용하는 것을 알 수 있다. htmlspecialchars방식을 이용하기에 xss_check_3의 함수를 고치지 않는 한 풀이가 불가능하다.
웹해킹 2주 1.HTML injection이란? 공격자가 악의적인 목적으로 html태그를 삽입하는 공격이다. 악의적인 html태그를 삽입하여 원치 않은 내용을 보게 하거나 다른 사이트로 리다이렉션 하는 등의 공격을 한다. 반사기법과 저장기법으로 나누어진다. 반사기법은 URL에 HTML 태그를 삽입하는 것, 저장 기법은 HTML태그를 데이터베이스에 저장한다는 점에서 차이가 있다. 2.[low] 처음에 1과 1을 넣었을 때 그대로 1이 출력되는 걸 확인할 수 있습니다.그 뒤로 1을 넣었을 때 빨간색 / 사이에 1이 들어가 있는 것을 확인할 수 있었습니다. last name부분에 img src: http://[본인IP]/bWAPP/images/bee_1.png를 넣자 출력에 이미지가 아닌 img src: http://[본..
웹해킹 1주차 beebox를 다운로드한다  설치한다 ip주소를 확인한