Dreamhack/Dreamhack Wargame (Challenge) 179

[59] IT 비전공자 [dreamhack]sql injection bypass WAF문제 풀기

**SQL Injection Bypass WAF**는 **SQL 인젝션(SQL Injection)** 공격을 시도할 때 **웹 애플리케이션 방화벽(WAF)**을 우회하여 공격을 성공시키는 기술입니다. WAF는 SQL 인젝션과 같은 공격을 차단하기 위해 입력된 SQL 문을 검사하여 악의적인 패턴을 탐지하고 차단합니다. 그러나 공격자는 WAF의 필터링 규칙을 우회할 수 있는 다양한 기법을 사용해 SQL 인젝션을 성공시킬 수 있습니다. ### SQL Injection Bypass WAF 기법과 취약점 설명 다양한 SQL 인젝션 우회 방법을 사용하여 WAF의 탐지 규칙을 피할 수 있으며, 몇 가지 일반적인 기법은 다음과 같습니다: 1. **공백 우회**:    - WAF가 공백을 기준으로 필터링할 경우, 공백 ..

[58] IT 비전공자 [dreamhack]command-injection-chatgpt문제 풀기

오랜만에 웹문제~~!!신나게 풀어보자구     이제 소스코드를 보러가볼게요  #!/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')@APP.route('/ping', methods=['GET', 'POST'])def ping(): if request.method == 'POST': host = request.form.get('host') cmd = f'ping -..

[57] IT 비전공자 [dreamhack]oneshot문제 풀기

원샷. 커피 샷 추가..? (껄껄)   Here’s a breakdown of the security protections for **Ubuntu 16.04** with the configuration you provided: 1. **Arch: amd64-64-little**: This is the architecture, indicating a 64-bit system using little-endian byte order. 2. **RELRO: Partial RELRO**: Partially enabled "Relocation Read-Only" protection. This makes certain sections of the process read-only but doesn’t fully pro..

[56] IT 비전공자 [dreamhack]error based sql injection문제 풀기

하하핫 가보자구 Error based sql injection이란 에러를 발생시켜서 데이터베이스 및 운영 체제의 정보를 획득하는 공격 기법으로, 데이터베이스가 반환하는 에러 메시지를 이용해 공격자가 데이터베이스 구조, 쿼리 결과 등을 알아내는 방법으로 에러 메시지를 자세히 반환하는 경우에 효과적이다.       소스코드나 보러가자.. CREATE DATABASE IF NOT EXISTS `users`;GRANT ALL PRIVILEGES ON users.* TO 'dbuser'@'localhost' IDENTIFIED BY 'dbpass';USE `users`;CREATE TABLE user( idx int auto_increment primary key, uid varchar(128) not nul..

[55] IT 비전공자 [dreamhack]rev-basic-8문제 풀기

55번째 문제 가보자고!                int __fastcall main(int argc, const char **argv, const char **envp){ char v4[256]; // [rsp+20h] [rbp-118h] BYREF memset(v4, 0, sizeof(v4)); sub_1400011B0("Input : ", argv, envp); sub_140001210("%256s", v4); if ( (unsigned int)sub_140001000(v4) ) puts("Correct"); else puts("Wrong"); return 0;} sub_140001000 조건을 확인해보자__int64 __fastcall sub_140001000(__int6..

[54] IT 비전공자 [dreamhack]basic_exploitation_003문제 풀기

주어진 정보를 바탕으로 Ubuntu 16.04에서 실행되는 32비트 바이너리의 보안 특성과 그 의미를 분석하겠습니다. ### 1. 시스템 정보 - **Ubuntu 16.04**:   - 사용 중인 운영 체제의 버전입니다. 16.04는 오래된 버전으로, 최신 보안 업데이트가 적용되지 않을 수 있습니다. ### 2. 아키텍처 정보 - **Arch: i386-32-little**:   - 이 바이너리는 32비트 아키텍처로 컴파일되었습니다.    - 32비트 아키텍처는 주소 공간이 4GB로 제한되며, 보안 공격에 대한 대응이 더 어려울 수 있습니다. ### 3. 보안 기능 - **RELRO: Partial RELRO**:   - RELRO( Read-Only Relocations)는 동적 연결된 라이브러리 함수..

[53] IT 비전공자 [dreamhack]out_of_bound문제 풀기

후후 딱봐도 스택오버플로우 문제군 (하지만 풀 줄은 모르는..) ○ Out Of Bound(OOB)배열이나 리스트와 같은 데이터 구조에서 정의된 인덱스나 범위를 넘어선 위치에 접근하는 경우를 의미한다.즉, 배열의 범위를 벗어나는 참조라 하여 Out of Bound라고 부른다.예를 들어보자. char command[10]이 있다고 하자. command[idx]을 조회하는 과정에서 idx를 10으로 입력하면 어떻게 될까? command[10]을 참조하는 상황이 발생한다. command[10]은 idx가 0~9만 존재한다. 하지만 9를 벗어나는 10을 참조하게 된다.즉, command[10]의 영역을 벗어나는 메모리를 참조하게 된다.이렇게 개발자가 의도하지 않은 메모리 영역을 참조하는 취약점을 Out of B..

[52] IT 비전공자 [dreamhack]simple_sqli_chatgpt문제 풀기

소스코드를 보자 #!/usr/bin/python3from flask import Flask, request, render_template, gimport sqlite3import osimport binasciiapp = Flask(__name__)app.secret_key = os.urandom(32)try: FLAG = open('./flag.txt', 'r').read()except: FLAG = '[**FLAG**]'DATABASE = "database.db"if os.path.exists(DATABASE) == False: db = sqlite3.connect(DATABASE) db.execute('create table users(userid char(100), userpa..

[51] IT 비전공자 [dreamhack]rev-basic-6문제 풀기

51번째 문제는 rev-basic!! 반가운 친구~!        int __fastcall main(int argc, const char **argv, const char **envp){ char v4[256]; // [rsp+20h] [rbp-118h] BYREF memset(v4, 0, sizeof(v4)); sub_1400011B0("Input : ", argv, envp); sub_140001210("%256s", v4); if ( (unsigned int)sub_140001000(v4) ) puts("Correct"); else puts("Wrong"); return 0;} 편안 해졌죠?    이 `main` 함수를 분석해 보겠습니다. 이 함수에는 몇몇 함수 호출과 버퍼..

[50] IT 비전공자 [dreamhack]php-1문제 풀기

50번째 문제!!!!! php 가보자!!!    **LFI (Local File Inclusion)**는 웹 애플리케이션의 보안 취약점 중 하나로, 사용자가 서버의 로컬 파일을 불법적으로 읽을 수 있는 취약점입니다. **LFI 공격**은 주로 웹 애플리케이션에서 파일 경로를 사용자 입력으로 받아들일 때 적절한 검증 없이 이를 처리하는 경우 발생합니다. 공격자가 이를 악용하면 서버의 중요한 정보에 접근하거나, 심지어 악성 코드를 실행할 수도 있습니다. ### LFI 동작 방식 LFI 취약점은 일반적으로 다음과 같은 방식으로 동작합니다: 1. 웹 애플리케이션이 사용자로부터 특정 파일 경로를 입력받아 해당 파일의 내용을 출력합니다. 2. 파일 경로에 대한 제한이 없거나 제한이 부적절할 경우, 공격자는 파일 경..