Dreamhack 108

[65] IT 비전공자 [dreamhack]cmd_center문제 풀기

소스코드다 #include #include #include #include void init() { setvbuf(stdin, 0, 2, 0); setvbuf(stdout, 0, 2, 0);}int main(){ char cmd_ip[256] = "ifconfig"; int dummy; char center_name[24]; init(); printf("Center name: "); read(0, center_name, 100); if( !strncmp(cmd_ip, "ifconfig", 8)) { system(cmd_ip); } else { printf("Something is wrong!\n"); } exit(0);} 이 프로그램의 코드를 분석하고, 잠재적으로 `cmd_ip` 명령을 수정하여 플래..

[64] IT 비전공자 [dreamhack]ssp_000문제 풀기

This output describes the security features enabled for an executable file on an Ubuntu 16.04 system. Let’s break down each element: 1. **Architecture** (`Arch: amd64-64-little`):     - This indicates a 64-bit executable for the x86_64 (AMD64) architecture, with little-endian byte ordering. 2. **RELRO** (`Partial RELRO`):     - "RELRO" stands for **Relocation Read-Only**, a security measure that..

[63] IT 비전공자 [dreamhack]CSRF Advanced문제 풀기

CSRF(Cross-Site Request Forgery), 또는 사이트 간 요청 위조는 사용자가 신뢰하는 웹 애플리케이션에 사용자의 의도와 관계없이 악의적인 요청을 보내도록 유도하는 웹 보안 취약점입니다. 이를 악용하면 공격자는 사용자의 권한으로 애플리케이션에서 원하지 않는 작업을 수행하게 할 수 있습니다. ### 1. **CSRF의 원리**    - CSRF 공격은 보통 사용자가 애플리케이션에 로그인한 상태에서 발생합니다. 공격자는 사용자가 특정 사이트에 방문할 때, 그 사용자의 브라우저가 자동으로 신뢰할 수 있는 사이트에 요청을 보내게 합니다.    - 예를 들어 사용자가 인터넷 뱅킹 사이트에 로그인해 있는 상태에서 악성 사이트를 방문하면, 해당 사이트가 사용자의 세션을 이용해 돈을 송금하는 요청을..

[62] IT 비전공자 [dreamhack]Basic_Crypto1문제 풀기

Roman Emperor's Cipher는 일반적으로 시저 암호(Caesar Cipher)라고도 불리는 암호 기법으로, 로마 황제 줄리어스 시저가 사용했다고 전해집니다. 이 암호는 알파벳의 각 문자를 일정한 숫자만큼 이동시켜 암호화하는 방식입니다. 예를 들어, 시저 암호에서 키가 3이라면 A는 D로, B는 E로 변환됩니다. 암호화된 메시지를 해독하려면 반대로 이동하여 원래의 문자를 복구할 수 있습니다. ### 해독 과정 암호문이 **"EDVLF FUBSWR GUHDPKDFN"**라면, 시저 암호로 암호화된 것으로 가정하고 이를 해독해보겠습니다. 일반적으로 시저 암호는 오른쪽으로 3칸씩 이동하는 방식을 사용합니다. 따라서 복호화할 때는 각 문자를 왼쪽으로 3칸씩 이동시키면 됩니다. 1. 각 단어를 나누어 ..

[61] IT 비전공자 [dreamhack]sint문제 풀기

이 정보는 **Ubuntu 16.04** 환경에서 실행되는 32비트(i386) 바이너리의 보안 설정을 나타냅니다. 각 항목의 의미와 보안에 미치는 영향을 설명하겠습니다. 1. **Arch: i386-32-little**    - 이 바이너리는 32비트 **i386** 아키텍처를 사용하며, **little-endian** 방식을 채택하고 있습니다. little-endian은 데이터의 가장 작은 바이트가 메모리의 가장 낮은 주소에 저장되는 형식입니다. 2. **RELRO: Partial RELRO**    - **Partial RELRO**는 런타임 중 일부 메모리 영역을 읽기 전용으로 설정하는 보호 기능입니다.    - 일부 전역 오프셋 테이블(GOT)이 읽기 전용으로 설정되지만, 함수 포인터와 같은 중요..

[60] IT 비전공자 [dreamhack]hook문제 풀기

60번째 문제 드가자~ 국비 합격 연락 받았다 하하. 즐겁게 공부해보자고~ 이 설명은 **Ubuntu 16.04** 환경에서 실행 중인 특정 바이너리(실행 파일)의 보안 설정을 나타냅니다. 각 설정은 프로그램의 보안성을 높이는 기능으로, 주요 요소를 분석해보겠습니다. 1. **Arch: amd64-64-little** - **Architecture (Arch)**는 바이너리가 64비트 AMD64 아키텍처에서 실행되고 있으며, **little-endian** 방식을 사용함을 나타냅니다. 여기서 **little-endian**은 데이터의 가장 작은 바이트가 메모리의 가장 낮은 주소에 저장되는 형식을 말합니다. 2. **RELRO: Full RELRO** - **RELRO**(Relocation Read-On..

[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..