프롤로그하루 한 문제씩 드림핵을 풀기에는 지금, 한 문제 푸는 데에 너무 오래걸린다.할 일은 많은데, 그래서 다른 워게임들도 풀어보려고 찾았고, webhacking.kr를 찾아서 풀어보려고 한다.1번 문제는 풀었으나, 너무 쉬웠어서 2번문제 부터 풀려고 한다. 문제 및 소스코드처음 들어갔을 때는 그냥 검정화면에, view-source 가 보인다view-source를 누르면view-source 풀이전략사이 부분을 보면파라미터로 admin을 입력이 되면 문제가 풀릴 것이다. 다만 그 위에, 파라미터로 admin이 입력되면 no!가 입력이 될 터이니 그것을 우회해야한다. 풀이과정https://webhacking.kr/challenge/web-11/?id=admin를 맨 처음에 입력해보자.no!가 출력이 되..
보안 스터디/웹 해킹
프롤로그시간이 부족해 문제https://dreamhack.io/wargame/challenges/343 [wargame.kr] tmitterDescription you need login with "admin"s id! create table tmitter_user( idx int auto_increment primary key, id char(32), ps char(32) );dreamhack.io 코드는 따로 주어지지 않았다 코드처음 입장했을 때 이렇게 존재하고, 소스코드는 TMITTER is not fake twitter! :p have an account? New to Tmitter? ID PS 여기서 확인할 수 있다. 그리고 문제조건에서 나온..
프롤로그학회 때문에 바빠죽겠는데 할 건 해야지.. 문제https://dreamhack.io/wargame/challenges/931 random-testDescription 새 학기를 맞아 드림이에게 사물함이 배정되었습니다. 하지만 기억력이 안 좋은 드림이는 사물함 번호와 자물쇠 비밀번호를 모두 잊어버리고 말았어요... 드림이를 위해 사물함 번호와dreamhack.io드림이는 바보야.. 코드#!/usr/bin/python3from flask import Flask, request, render_templateimport stringimport randomapp = Flask(__name__)try: FLAG = open("./flag.txt", "r").read() # flag is ..
프롤로그워게임 Error based SQL Injection 을 풀면서, SQL Injection에는1. Error Based SQL Injection: GET/POST/HTTP헤더/쿠키 등에 ' or ; 삽입시 SQL 관련 에러를 통해 DB의 정보를 예상(1) '을 넣어서 Error based SQL Injection이 뜨는지 확인(2) ' and db_name() > 1 -- 로, 등으로 DB명 확인(3) 칼럼명 확인 2. Union Based SQL Injection: 공격자가 Union을 이용하여 원래의 요청에 추가 쿼리를 삽입하여 정보를 얻어내는 방식-> Union쿼리는 앞에거랑 필드개수가 같아야함' union select 1, 2, 3, 4, 5, 6# 이런식으로 사용 3. Blind bas..
문제https://dreamhack.io/wargame/challenges/1186 what-is-my-ipDescription How are they aware of us even behind the wall? FYI Flag Location: /flag Flag Format: DH{...}dreamhack.io 소스코드#!/usr/bin/python3import osfrom subprocess import run, TimeoutExpiredfrom flask import Flask, request, render_templateapp = Flask(__name__)app.secret_key = os.urandom(64)@app.route('/')def flag(): user_ip = reques..
프롤로그하루 1 워게임 도전중 문제소스코드를 다운받아도, 아무것도 없길래 일단 넘어가겠다. 그래서 사이트를 접속하게 되면get source 부분이 있는데 저것을 클릭하면 소스코드"; echo "FLAG : ".$FLAG; } }else{ echo "wrong.."; } }?>IDPW get source 코드 분석맨 밑에 주석처리되어 있는 you have blocked accounts.guest / guestblueh4g / blueh4g1234ps이게 아마 아이디, 비밀번호일것이다. isset($_POST['id']) && isset($_POST['ps'])여긴 POST 요청으로 아이디, 비밀번호가 요청된 게 있는 확인하는 곳mysqli_connect("localhost", $DB_u..
프롤로그CSRF 관련된 풀이는 오랜만이라서 개념부터 다시 정리하고, 이전 CSRF-1번 문제 되돌아보면서 이 CSRF Advanced 문제를 풀어보자 CSRF교차 사이트 요청 위조(Cross Site Request Forgery)쿠키 또는 세션을 사용해 이용자를 식별하는데, 임의 이용자의 쿠키를 사용할 수 있다? 그러면 임의 이용자의 웹 서비스 기능을 사용할 수 있다.CSRF는 임의 사용자의 권한으로 임의 주소에 HTTP 요청을 보낼 수 있는 취약점이다. CSRF 공격에 성공하기 위해서는 공격자가 작성한 악성 스크립트를 이용자가 실행하여야함.-> 메일/게시판에 글을 작성해 이용자가 이를 조회하도록 유도 IMG 태그나 FORM 태그로 요청보내면 세션아이디값이 같이 간다중요한건CSRF는 이용자가 임의 페..
프롤로그화이트햇 하면서 공책받고나서 거기다가 열심히 적으면서 하다가 블로그 정리 안 하긴 했는데블로그 정리가 훨씬 더 좋은 거 같다. 문제 문제코드#app.pyimport osfrom flask import Flask, requestfrom flask_mysqldb import MySQLapp = Flask(__name__)app.config['MYSQL_HOST'] = os.environ.get('MYSQL_HOST', 'localhost')app.config['MYSQL_USER'] = os.environ.get('MYSQL_USER', 'user')app.config['MYSQL_PASSWORD'] = os.environ.get('MYSQL_PASSWORD', 'pass')app.config['..
프롤로그 session-basic 이라는 문제가 있었는데, 이것은 그거와는 조금 다른 문제이다. 문제 https://dreamhack.io/wargame/challenges/266 session 쿠키와 세션으로 인증 상태를 관리하는 간단한 로그인 서비스입니다. admin 계정으로 로그인에 성공하면 플래그를 획득할 수 있습니다. Reference Background: Cookie & Session dreamhack.io 문제코드 #!/usr/bin/python3 from flask import Flask, request, render_template, make_response, redirect, url_for app = Flask(__name__) try: FLAG = open('./flag.txt', '..
프롤로그 1주일간, 무선통신과 AES 암호학에 대해서 되게 심도있게 공부하고, 그것으로 발표자료를 준비하느라 좀 블로그에 신경을 못 썼다. 오늘 일단 발표자료는 다 완성이 되어서 이제 웹 해킹 마저 공부했던 거 계속 문제를 풀어보자. 문제 문제 코드 PHPreg Step 1 Step 2
문제 https://dreamhack.io/wargame/challenges/75 web-ssrf flask로 작성된 image viewer 서비스 입니다. SSRF 취약점을 이용해 플래그를 획득하세요. 플래그는 /app/flag.txt에 있습니다. 문제 수정 내역 2023.07.17 css, html 제공 Reference Server-side Basic dreamhack.io 문제코드 #!/usr/bin/python3 from flask import ( Flask, request, render_template ) import http.server import threading import requests import os, random, base64 from urllib.parse import url..
프롤로그 이건 또 뭘까..;; 서론 웹 개발 언어는 HTTP 요청을 전송하는 라이브러리를 제공한다. 파이썬같은 경우 urllib, requests 가 있다. 이 라이브러리는 HTTP 요청을 보낼 클라이언트 뿐만 아니라 서버와 서버간 통신을 위해 사용되기도 한다. 일반적으로 다른 웹 애플리케이션에 존재하는 리소스를 사용하기 위한 목적으로 통신한다. 기존에는 단일 서비스로 웹 서비스를 구현하였지만, 이제는 관리 및 코드의 복잡도를 낮추기 위해 마이크로서비스들로 웹 서비스를 구현하는 추세인데, 각 마이크로서비스는 주로 HTTP, GRPC 등을 사용해 API 통신을 한다. 서비스간 HTTP 통신이 이루어질때 요청 내에 이용자의 입력값이 포함될 수 있는데, 이용자의 입력값으로 포함되면 개발자가 의도하지 않은 요청..