Wargame

    goblin

    1. intro 세번째 문제. 2. code 및 분석 2.1. code query : select id from prob_goblin where id='guest' and no=

    cobolt

    1. intro 두번째 문제. 2. code 및 분석 2.1. code query : select id from prob_cobolt where id='' and pw=md5('')

    mango

    1. intro 2. code 및 분석 2.1. code 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': 'admin', 'upw': 'DH{32alphanumeric}'} const BAN = ['admin', 'dh', 'admi']; filter = function(data){ cons..

    gremlin

    1. intro 회사 파일 업로드 막는거 더럽네... 이미지는 하나도 못넣고 -_- 어쨌든, SQL injection 공부를 하던 중, 좋은 사이트를 알게되어 들이대본다. https://los.rubiya.kr/ Lord of SQLInjection los.rubiya.kr 2. code 및 분석 2.1. code query : select id from prob_gremlin where id='' and pw=''

    simple_sqli

    1. intro 2. code 및 분석 2.1. code #!/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: FLAG = '[**FLAG**]' DATABASE = "database.db" if os.path.exists(DATABASE) == False: db = sqlite3.connect(DATABASE) db.execute('create table users(use..

    csrf-2

    1. intro 2. code 및 분석 2.1. code #!/usr/bin/python3 from flask import Flask, request, render_template, make_response, redirect, url_for from selenium import webdriver import urllib import os app = Flask(__name__) app.secret_key = os.urandom(32) try: FLAG = open("./flag.txt", "r").read() except: FLAG = "[**FLAG**]" users = { 'guest': 'guest', 'admin': FLAG } session_storage = {} def read_url(url, ..

    csrf-1

    1. intro 2. code 및 분석 2.1. code #!/usr/bin/python3 from flask import Flask, request, render_template from selenium import webdriver import urllib import os app = Flask(__name__) app.secret_key = os.urandom(32) try: FLAG = open("./flag.txt", "r").read() except: FLAG = "[**FLAG**]" def read_url(url, cookie={"name": "name", "value": "value"}): cookie.update({"domain": "127.0.0.1"}) try: options = w..

    xss-2

    1. intro 2. code 및 분석 2.1. code xss-1과 다른 부분은 아래 한 곳이다. @app.route("/vuln") def vuln(): return render_template("vuln.html") 2.2. 분석 xss-1과 동일하지만, 이번에는 받아들인 값을 바로 인자로 사용하지 않는다는 점이 차이점이다. 3. 취약점 확인 및 공격 준비 3.1. 취약점 xss 3.2. 공격 준비 우선 vuln 페이지로 들어가봤더니 param이 alert를 실행하도록 되어있으나 반응하지 않는 것을 볼 수 있다. 이는 곧 가 제대로 삽입되지 않는다는 것인데, 아무래도 문자열 필터링인 것 같다는 생각이 들었다. 테스트해보니

    xss-1

    1. intro 2. code 및 분석 2.1. code #!/usr/bin/python3 from flask import Flask, request, render_template from selenium import webdriver import urllib import os app = Flask(__name__) app.secret_key = os.urandom(32) try: FLAG = open("./flag.txt", "r").read() except: FLAG = "[**FLAG**]" def read_url(url, cookie={"name": "name", "value": "value"}): cookie.update({"domain": "127.0.0.1"}) try: options = w..

    cookie

    1. intro 2. code 및 분석 2.1. code #!/usr/bin/python3 from flask import Flask, request, render_template, make_response, redirect, url_for app = Flask(__name__) try: FLAG = open('./flag.txt', 'r').read() except: FLAG = '[**FLAG**]' users = { 'guest': 'guest', 'admin': FLAG } @app.route('/') def index(): username = request.cookies.get('username', None) if username: return render_template('index.html'..