보안 스터디/웹 해킹

문제 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..
프롤로그 CSRF 개념은 뭐 웹개발할 때 내가 알고 있던 지식으로는 이 게시물이 정상적인 사람으로부터 폼을 받았는가 체크하는 것으로만 단지 알고 있었다. 네이버 뒤져봤을 때는 "특정 사용자를 대상으로 하지 않고, 불특정 다수를 대상으로 로그인된 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록, 송금 등)을 하게 만드는 공격이다. 즉 내가 알던 개념이 아니었고, 이 드림핵 을 통해서 개념을 잡아보겠다. https://learn.dreamhack.io/172# 로그인 | Dreamhack dreamhack.io Cross Site Request Forgery (CSRF) 웹 서비스는 쿠키 또는 세션을 사용해 이용자를 식별하는데, 임의 이용자의 쿠키를 사용하여 이용자의 권한으로 HT..
문제 문제파일 app.py #!/usr/bin/python3 from flask import Flask, request, render_template from selenium import webdriver from selenium.webdriver.chrome.service import Service 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({"do..
프롤로그 Mitigation : Same Origin Policy 을 대충 해석해보니까 완화/진정 : 같은 원산 정책이라고 적혀있는 걸 보아하니 뭔가 Same Origin Policy 라는 정책으로 무언갈 완화 시키는 것 같다. https://learn.dreamhack.io/186# 로그인 | Dreamhack dreamhack.io Same Origin Policy(SOP) 쿠키는 브라우저 내부에 보관되고, 이 쿠키를 HTTP 요청에 포함시켜 전달한다.그런데 이게 타 사이트에 접근할 때도 인증 정보인 쿠키를 함께 전송하는 특징을 가지고 있다. 그래서 악의적인 페이지가 클라이언트의 권한을 얻기 위해 이 쿠키를 얻으면 보안 위협이 생겨버린다. 그냥 세션 id 악의적으로 A한테 받을 거 나한테 받는다 이런..
문제 session-basic(Level 1) 문제파일 #!/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', 'user': 'user1234', 'admin': FLAG } # this is our session storage session_storage = { } @app.route('/') def index(): session_id = request.cooki..
문제 cookie (beginner) 문제파일 #!/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', text..
성밍쟁
'보안 스터디/웹 해킹' 카테고리의 글 목록 (2 Page)