드림핵

문제 https://dreamhack.io/wargame/challenges/44 command-injection-1 특정 Host에 ping 패킷을 보내는 서비스입니다. Command Injection을 통해 플래그를 획득하세요. 플래그는 flag.py에 있습니다. Reference Introduction of Webhacking dreamhack.io 문제코드 #!/usr/bin/env python3 import subprocess from flask import Flask, request, render_template, redirect from flag import FLAG APP = Flask(__name__) @APP.route('/') def index(): return render_templ..
프롤로그 웹 해킹 강의 현재 75퍼까지 진행되었다. 얼마 남지 않았는데 최대한 빨리 끝내고 웹해킹쪽은 워게임 문제풀이 많이 해봐야겠다. 서론 어떤 기능에 대해서 새로 코드를 짜는 것 보단 이미 있는 내장 명령어를 쓰는 경우가 많다.(ls, who...) 다양한 웹 어플리케이션 제작용 언어는 시스템에 내장되어 있는 프로그램들을 호출 할 수 있는 함수를 지원한다. 이 시스템 함수를 사용하면 이미 설치된 소프트웨어들을 쉽게 이용할 수 있다는 장점이 있으나, 함수의 인자를 셸의 명령어로 전달한다는 점에서 치명적인 취약점이 이어지기도 한다. -> 이를 Command Injection(명령어를 실행해 주는 함수를 잘못사용하여 발생) 이라고 한다. Command Injection 인젝션(Injection) : 악의적..
문제 문제 코드 const express = require('express'); const app = express(); const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/main', { useNewUrlParser: true, useUnifiedTopology: true }); const db = mongoose.connection; // flag is in db, {'uid': 'admin', 'upw': 'DH{32alphanumeric}'} const BAN = ['admin', 'dh', 'admi']; filter = function(data){ const dump = JSON.stringify(data).t..
프롤로그 simple_sqli 워게임 문제에서 Bilnd SQL Inejction 해볼려고 했는데 안 됐다; 자꾸 requests 모델이 없다는데 파이썬 새 버전 설치에 별 거 다해봤는데 안 돼서 그냥 비관계형 DBMS 로 넘어왔다. NRDMBS(NoSQL) RDBMS의 단점은 저장해야하는 데이터가 많아지면 용량의 한계에 다다를 수 있는 것인데, 이를 해결하기 위해서 나왔다. RDBMS는 SQL를 사용해 데이터를 조회 및 추가 그리고 삭제할 수 있었는데, NoSQL은 SQL를 사용하지 않고 복잡하지 않은 데이터를 저장해 단순 검색 및 추가 검색 작업을 위해 매우 최적화된 저장 공간이 큰 특징이고 관계형과의 차이점이 있다. 관계형은 SQL이라는 정해진 문법으로 데이터를 저장하기에 SQL이 필수인데, NoS..
문제 https://dreamhack.io/wargame/challenges/24/ simple_sqli 로그인 서비스입니다. SQL INJECTION 취약점을 통해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. Reference Server-side Basic dreamhack.io 문제코드 #!/usr/bin/python3 from flask import Flask, request, render_template, g import sqlite3 import os import binascii app = Flask(__name__) app.secret_key = os.urandom(32) try: FLAG = open('./flag.txt', 'r').read() except:..
프롤로그 제목에서부터 SQL Injection 나온다. 인터넷 뒤져봤는데, 각 고객 정보 유출....핸드폰번호 등의 고객정보 유출 등이 있을 때 SQL 인젝션 공격흔적이란 단어가 나온다. 사용자가 입력값에 필터링이 제대로 적용돼 있지 않을 때 발생한다고 되어 있는데, 공겨자가 조작된 SQL 질의문을 삽입해 웹 서버 DB정보를 열람하고 정보를 유출, 조작한다라고 되어 있다. 그러니까 SQL을 좀 알아야할 것 같다. 근데 내가 아는 건 Create table, update table 이거 딱 2개만 해봤는데 큰일났다. 서론 Injection(인젝션) : 주입, 이용자의 입력값이 어플리케이션의 처리과정에서 구조나 문법적인 데이터로 해석되어 발생하는 취약점 SQL Injection SQL : DBMS에 데이터를..
프롤로그 https://learn.dreamhack.io/169 로그인 | Dreamhack dreamhack.io 웹 개발을 실제로 해보면서 (물론 장고긴 하지만), 데이터베이스 구조화 부터 먼저 시켰다. 데이터베이스를 먼저 설정하지 않고 무지성으로 홈페이지 개발하다 보면, 필요한 거 추가하느라 모델(DB)를 수정시켰고, 이 수정 잘못 시키는 순간 엄청난 오류로 인해서 코드 다 갈아엎었던 기억이 난다. 이번에는 그 데이터베이스와 관련된 강의가 진행되는 것 같다. 데이터 베이스(Database) : 정보를 기록하기 위함 데이터베이스 관리 어플리케이션(DataBase Management System, DBMS) : 데이터베이스 관리 Database Management System 웹 서비스는 데이터베이스에..
문제 https://dreamhack.io/wargame/challenges/269 csrf-2 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. CSRF 취약점을 이용해 플래그를 획득하세요. 문제 수정 내역 2023.07.18 css, html 제공 및 read_url() 코드 일부가 변경되었습니다. Referen dreamhack.io 문제코드 #!/usr/bin/python3 from flask import Flask, request, render_template, make_response, redirect, url_for from selenium import webdriver from selenium.webdriver.chrome.service import Service impor..
프롤로그 CSRF에 대해 조금 더 찾아봤는데, (1) 내가 은행사이트(예시)에 접속함 (2) 쿠키가 브라우저에 저장됨. (3) 공격자가 만든 악성 사이트에 접속함 (4) 브라우저에 저장되어있는 쿠키를 사용하여 악의적인 행동 이런 느낌이다. 그러니까 핵심은 "브라우저"에 "쿠키"가 저장되어서 이 CSRF 공격이 이루어질 수 있다...라는 거로 받아들이니까 좀 이해가 되는 거 같다. 그럼...문제를 풀어보자 문제 문제파일 #!/usr/bin/python3 from flask import Flask, request, render_template from selenium import webdriver from selenium.webdriver.chrome.service import Service import u..
프롤로그 솔직히 가상머신에서 VI 편집기 열어가면서 하기 너무 귀찮을 거 같아서 Visual Stduio Code 에서 어떻게든 하고 싶어서 이것저것 찾아보았는데, wsl2 버전을 설치해보라는 피드백을 받아서 한 번 설치해보 1. wsl2 설치하기 https://webnautes.tistory.com/1847 WSL2를 설치하여 Ubuntu 22.04 사용하는 방법 Windows 11에 WSL2 ( Windows Subsystem for Linux )를 설치한 후, Ubuntu 22.04를 설치한 과정을 다루고 있습니다. Windows 10에서도 거의 동일하게 진행가능합니다. 2017. 12. 15 최초작성 2021. 05. 19 2021. 08. 01 2022. 11. 25 webnautes.tisto..
프롤로그 저번 글에서 WSL을 이용하여 VS코드에서 pwndbg를 사용하려고 하였다. 그러나 계속 gdb에서 메모리에 접근할 수 없다고 나오면서 원인을 파악할 수 없었다. 이를 해결하는 법을 위에 3대의 컴퓨터에서 다시 설치하고 우분투 재설치만 5번을 해봤는데 되지 않아서 가상머신을 이용하는 방식을 이용하기로 하였다. gdb에 대한 뜻은 아래 글에서 적었지만 별 내용은 없을 것이다. https://taesan-smj.tistory.com/11 [드림핵] Tools : gdb (시스템 해킹) gdb란? gdb(GNU debugger) : 리눅스의 대표적인 디버거로, 오픈소스로 개발되어 있어서 무료 설치 가능하다. 오래되었기에 다양한 플러그인이 개발되어있다. gdb 설치하기 1. VS코드실행 2. TERMI..
성밍쟁
'드림핵' 태그의 글 목록 (2 Page)