Web Hacking 11

[WebHacking] - Dreamhack blind-command 문제 풀이

[문제 분석]접속하면 이게 다다. 코드를 보겠다. #!/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=8000)코드 또한 간단하다.문제에서 Read the flag file XD가 설명이..

Web Hacking 2024.08.19

[WebHacking] - Dreamhack Carve Party 문제 풀이

따로 링크는 없고 문제 파일을 다운로드 받으면 html 파일이 하나 나온다. 그걸 실행시키면  이런 웹사이트가 등장한다. 10000번 클릭정도면 해볼만 하다. [Write Up]해당 웹사이트에서 f12를 누른 후 script 구문을 살펴보겠다.var pumpkin = [ 124, 112, 59, 73, 167, 100, 105, 75, 59, 23, 16, 181, 165, 104, 43, 49, 118, 71, 112, 169, 43, 53 ];var counter = 0;var pie = 1;function make() { if (0 String.fromCharCode(x)).join(''), x = 30, i = 0; ctx.font = "50px Comic Sans MS, cursive, ..

Web Hacking 2024.08.18

[WebHacking] - Dreamhack web-ssrf 문제 풀이(SSRF)

[문제 분석]웹 사이트에 접속하면 다음과 같은 창이 뜬다.Image Viewer를 클릭해서 해본 결과 밑의 결과가 뜬다.flag는 /app/flag.txt에 있다고 한다. 이것을 잘 찾아서 봐야될 것 같다. app.py에 대한 코드 분석을 해보겠다.#!/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("..

Web Hacking 2024.08.18

[WebHacking] - Dreamhack : file-download-1 문제 풀이 (File Vulnerability)

[문제 분석]서버에 접속하면 이런 웹사이트에 들어갈 수 있다. 아무거나 입력해서 upload 했을 시에 Home에 이렇게 내가 upload한 것을 볼 수 있다.저걸 클릭해서 들어가면 위와 같이 제목과 content가 나온다. 문제에서 flag.py를 다운받으면 플레그 획득이 가능하다고 했다.더 분석을 해보기 위해 app.py의 코드를 보겠다.#!/usr/bin/env python3import osimport shutilfrom flask import Flask, request, render_template, redirectfrom flag import FLAGAPP = Flask(__name__)UPLOAD_DIR = 'uploads'@APP.route('/')def index(): files = ..

Web Hacking 2024.08.18

[WebHacking] - Dreamhack image-stroage 문제 풀이 (File Vulnerability)

[문제 분석]접속하면 위와 같은 창이 뜬다. /flag.txt에 있는 정보를 뽑으면 된다. Upload 메뉴에는 실제 파일을 업로드 할 수 있는 기능이 있다. 0 ) { echo "Error: " . $error . ""; }else { if (file_exists($directory . $name)) { echo $name . " already exists. "; }else { if(move_uploaded_file($tmp_name, $directory . $name)){ echo "Stored in: " . $directory . $name; } } } }el..

Web Hacking 2024.08.18

[WebHacking] - Dreamhack command-injection-1 문제 풀이 (command injection)

Command Injection에 해당하는 기본 문제를 풀어보겠다. [문제 분석]서버에 접속하면 Ping을 보낼 수 있는 곳이 나온다.#!/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.g..

Web Hacking 2024.08.17

[WebHacking] - Dreamhack Mango 문제 풀이 (NoSQL Injection)

NoSQL Injection 문제를 풀어보겠다. [문제 분석]들어가면 나오는 사이트이다. 웹 서버에 접속해보겠다. 웹사이트에 들어가니 위와같은 화면이 뜨는게 끝이다.문제 파일을 받으면 js 와 json파일만 존재하는 것을 볼 수 있다.main.js 파일을 열어보겠다. 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':..

Web Hacking 2024.08.17

[WebHacking] - Dreamhack simple_sqli 문제 풀이 (sql injection)

sql injectino의 기본 문제 simple_sqli를 풀어보겠다. [문제 분석] 웹사이트에 접속하면 Login 페이지가 뜬다. sql injection만 하면 되려나 싶지만 자세한 분석을 위해 문제파일을 다운 받은 후 소스코드를 보겠다.#!/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 ..

Web Hacking 2024.08.16

[WebHacking] - Dreamhack csrf-2 문제 풀이 (CSRF wargame)

csrf-2를 풀어보겠다. [문제 분석]문제 페이지에 들어가면 다음과 같은 화면이 뜬다. VM 부팅 후 서버를 생성하고 서버에 접속하면 csrf-1과는 다르게 login창이 있는 것을 볼 수 있다. 하나씩 분석해보겠다.vuln(csrf) page-> csrf-1과 같이 script에 필터링이 되어 있는 것을 확인할 수 있다.flag-> flag 부분에는 vuln?param= 뒤에 직접 넣을 수 있는 부분이 존재한다. 여기서 스크립트를 입력하여 공격을 시도해야 될 것 같다.login-> login 페이지가 뜬다. 일반적으로 볼 수 있는 login 페이지다.코드 분석도 해보겠다.#!/usr/bin/python3from flask import Flask, request, render_template, make..

Web Hacking 2024.08.16

[WebHacking] - Dreamhack csrf-1 문제 풀이 (CSRF wargame)

csrf-1 문제에 대해 풀어보겠다. [문제 파악]처음 접속하면 위 화면이 나온다. 서버 생성 후 접속해보겠다.다음과 같은 사이트에 접속이 되는 것을 확인할 수 있다.순서대로 사이트에 접속해보면 각각 어떤 역할인지를 대략적으로 파악할 수 있다. 상세한 기능 또한 문제 파일을 받은 후 app.py를 살펴보면 확인이 가능하다. 그럼 각 페이지를 살펴보겠다.vuln(csrf) page-> alert(1)로 표시된느 것을 볼 수 있다. 대략 여기서 script라는 것이 필터링 된 것을 알 수 있다. (자세한건 소스코드에서)memo-> memo?memo=hello 에서 hello가 연속적으로 출력되는 것을 확인할 수 있다. 여기다가 flag를 출력하면 용이할 것 같다는 생각을 할 수 있다. (이전 xss-1, x..

Web Hacking 2024.08.16