[DVWA] Command Injection 실습
·
Web
Command Injection 이란?애플리케이션이 사용자로부터 받은 입력값을 제대로 검증하지 않고, 이를 시스템 명령어로 직접 실행하는 경우를 노리고 공격하는 유형이다.즉, 서버 측에서 사용자의 입력을 신뢰하고 이를 그대로 명령어에 사용하면, 공격자가 입력값에 임의의 명령어를 추가하거나 변경하여 서버의 권한을 획득하거나 파일 정보 유출, 시스템 장악을 시도할 수 있다.실습(Low Level)먼저 DVWA Security 에 들어가서 Security Level 을 [Low] 로 맞춰준다.위의 사진과 같이 127.0.0.1 이라는 IP 주소를 입력한다.시스템 명령어인 ping 명령을 실행한 결과를 반환하는 것을 알 수 있따.이처럼 웹이서 시스템 명령이 실행된다는 것은 OS 에서 시스템 명령을 호출한다는 의..
[Dreamhack] blind-command
·
Webhacking/Dreamhack
blind-commandRead the flag file XD Reference Web Hackingdreamhack.ioCode#!/usr/bin/env python3from flask import Flask, requestimport osapp = Flask(__name__)@app.route('/' , methods=['GET'])def index(): cmd = request.args.get('cmd', '') if not cmd: return "?cmd=[cmd]" if request.method == 'GET': '' else: os.system(cmd) return cmdapp.run(host='0.0.0.0', port=800..
[Dreamhack] Carve Party
·
Webhacking/Dreamhack
Carve PartyDescription 할로윈 파티를 기념하기 위해 호박을 준비했습니다! 호박을 10000번 클릭하고 플래그를 획득하세요!dreamhack.io코드 설명$(function() { $('#jack-target').click(function () { counter += 1; if (counter 호박을 클릭했을 때 실행되는 함수이다.최초 선언된 count=0 이 10000 이 될때까지 1씩 카운트를 늘려가며 pumkin[ ] 리스트 값을 전환한다.count가 10000 이 되면, make( ) 함수를 호출하여 flag를 표시한다.해당 함수가 10000번 실행하게 된다면 html 상에서 클릭을 10000 번 했다고 인지한다.문제 풀이익스플로잇var i = 0;while(i위의 코..
[Dreamhack] web-ssrf
·
Webhacking/Dreamhack
web-ssrfflask로 작성된 image viewer 서비스 입니다. SSRF 취약점을 이용해 플래그를 획득하세요. 플래그는 /app/flag.txt에 있습니다. Reference Exercise: SSRFdreamhack.iocode#!/usr/bin/python3from flask import ( Flask, request, render_template)import http.serverimport threadingimport requestsimport os, random, base64from urllib.parse import urlparseapp = Flask(__name__)app.secret_key = os.urandom(32)try: FLAG = open("./flag..
[Dreamhack] command-injection-1
·
Webhacking/Dreamhack
command-injection-1특정 Host에 ping 패킷을 보내는 서비스입니다. Command Injection을 통해 플래그를 획득하세요. 플래그는 flag.py에 있습니다. Reference Exercise: Command Injectiondreamhack.iocode#!/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',..
[Dreamhack] Mango
·
Webhacking/Dreamhack
MangoDescription 이 문제는 데이터베이스에 저장된 플래그를 획득하는 문제입니다. 플래그는 admin 계정의 비밀번호 입니다. 플래그의 형식은 DH{...} 입니다. {'uid': 'admin', 'upw': 'DH{32alphanumeric}'} Reference Servdreamhack.iocodeconst express = require('express');const app = express();const mongoose = require('mongoose');mongoose.connect('mongodb://localhost/main', { useNewUrlParser: true, useUnifiedTopology: true });const db = mongoose.connection;..
[Dreamhack] simple_sqli
·
Webhacking/Dreamhack
simple_sqli로그인 서비스입니다. SQL INJECTION 취약점을 통해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. Reference Server-side Basicdreamhack.ioapp.py#!/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.p..
[Dreamhack] csrf-2
·
Webhacking/Dreamhack
app.py#!/usr/bin/python3from flask import Flask, request, render_template, make_response, redirect, url_forfrom selenium import webdriverfrom selenium.webdriver.chrome.service import Serviceimport urllibimport osapp = Flask(__name__)app.secret_key = os.urandom(32)try: FLAG = open("./flag.txt", "r").read()except: FLAG = "[**FLAG**]"users = { 'guest': 'guest', 'admin': FLAG}session_sto..
[Dreamhack] csrf-1
·
Webhacking/Dreamhack
csrf-1여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. CSRF 취약점을 이용해 플래그를 획득하세요. 문제 수정 내역 2023.07.18 css, html 제공 및 read_url() 코드 일부가 변경되었습니다. Referendreamhack.ioapp.py#!/usr/bin/python3from flask import Flask, request, render_templatefrom selenium import webdriverfrom selenium.webdriver.chrome.service import Serviceimport urllibimport osapp = Flask(__name__)app.secret_key = os.urandom(32)try: FLAG = ope..
[Dreamhack] xss-2
·
Webhacking/Dreamhack
xss-2여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. XSS 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. 플래그 형식은 DH{...} 입니다. 문제 수정 내역dreamhack.ioapp.py#!/usr/bin/python3from flask import Flask, request, render_templatefrom selenium import webdriverfrom selenium.webdriver.chrome.service import Serviceimport urllibimport osapp = Flask(__name__)app.secret_key = os.urandom(32)try: FLAG = open("./flag.tx..