전체 글 42

DreamhackWeb Hacking_File Vulnerability

1. 서론많은 현대 웹 서비스에는 글 만으로 전달하기 힘든 정보를 전달할 수 있도록 이미지나 문서 등의 파일 업로드 기능이 존재한다. 예를 들어, 이용자 간에 사진을 공유할 수 있는 이미지 공유 서비스들은 이미지 파일을 업로드할 수 있는 기능과 업로드 된 이미지를 다른 이용자들이 다운로드 받을 수 있도록 하는 기능을 갖추고 있다. 이러한 파일 공유 서비스를 개발할 때, 이용자가 업로드한 파일을 DB에 저장하는 것보다는, 서버의 파일 시스템에 저장하는 것이 개발하기 쉽고 관리 효율도 높다. 그러나 임의 파일이 다운로드 되는 취약점이나, 악성 웹셸 파일을 업로드하여 임의 코드를 실행할 수 있는 취약점을 발생시키기도 한다. File Upload Vulnerability는 파일 업로드와 관련해서 발생하는 취약점..

Dreamhack 2024.09.29

Web Hacking_command-injection-1🚩

1. 문제 설명2. 문제 풀이시작 페이지, ping 페이지가 있는 간단한 웹 사이트다.전 강의와 마찬가지로, Host IP를 입력하면 정상적으로 동작한다.  그럼 이제 코드를 살펴보자.#!/usr/bin/env python3import subprocessfrom flask import Flask, request, render_template, redirectfrom flag import FLAGAPP = Flask(__name__)APP.route('/')def index(): return render_template('index.html')render_template를 통해 index.html 페이지를 렌더링한다. 뭐 별건 없다.@APP.route('/ping', methods=['GET', 'P..

Dreamhack 2024.09.28

Web Hacking_Command Injection

1. 서론다양한 웹 애플리케이션 제작용 언어는, 시스템에 내장되어있는 프로그램들을 호출할 수 있는 함수를 지원한다. 각 언어별 시스템 함수로는 PHP의 system, Python의 os.system 등이 있다. 이러한 함수는 전달된 인자를 셸 프로그램에 전달해 명령어를 실행한다. 예를 들어 system("cat/etc/passwd")를 호출하면 셸 프로그램으로 cat/etc/passwd를 실행한 것과 같다. 시스템 함수를 사용하면 이미 설치된 소프트웨어들을 쉽게 이용할 수 있다는 장점이 있다. 그러나 함수의 인자를 셸의 명령어로 전달한다는 점에서 치명적인 취약점으로 이어지기도 한다. 이번 강의에서는 명령어를 실행해주는 함수를 잘못 사용하여 발생하는 Command Injection 취약점에 대해 공부할 것..

Dreamhack 2024.09.28

Web Hacking_simple_spqi🚩

1. 문제 설명2. 문제 파악login 페이지가 전부이다. 이전 dreamhack 강의의 실습과 유사하다.코드는 대략 이렇다.DATABASE = "database.db"if os.path.exists(DATABASE) == False: db = sqlite3.connect(DATABASE) db.execute('create table users(userid char(100), userpassword char(100));') db.execute(f'insert into users(userid, userpassword) values ("guest", "guest"), ("admin", "{binascii.hexlify(os.urandom(16)).decode("utf8")}");') d..

Dreamhack 2024.09.27

Web Hacking_SQL Injection

1. 서론DBMS에서 관리하는 DB에는 계정, 비밀글과 같은 민감한 정보가 포함되어 있을 수 있다. 공격자는 DB 파일 탈취, SQL Injection 공격 등으로 해당 정보를 확보하고 악용하여 금전적 이익을 얻을 수 있다. 따라서 임의 정보 소유자 이외의 이용자에게 해당 정보가 노출되지 않도록 해야한다. Injection은 '주입'이라는 의미이다. 인젝션 공격은, 이용자의 입력값이 애플리케이션의 처리 과정에서 구조나 문법적인 데이터로 해석되어 발생하는 취약점을 의미한다. 이용자가 입력한 악의적인 입력값이 의도하지 않은 행의를 일으키는 것이다.2. SQL InjectionSQL은 DBMS에 데이터를 질의하는 언어이다. 그리고 DBMS에서 사용하는 질의 구문인 SQL을 삽입하는 공격을 SQL Injecti..

카테고리 없음 2024.09.26