[dreamhack] login-1 문제풀이
2021. 7. 1. 21:43
워게임/dreamhack
[WEB] login-1 문제풀이 Race Condition(레이스 컨디션)은 공유 자원에 대해 여러 개의 프로세스가 동시에 접근하기 위해 경쟁하는 상태를 말한다. 이렇게 프로세스들이 경쟁하는 것을 이용하여 관리자 권한을 얻는 공격을 레이스 컨디션 공격이라고 한다. 문제를 확인해보자. python으로 작성된 로그인 기능을 가진 서비스에서 "admin" 권한을 얻어 플래그를 획득하라고 한다. 접속해보자. 음 여긴 무슨 링크고 뭐고 아무것도 없는데?? 바로 소스 까봅시다. #!/usr/bin/python3 from flask import Flask, request, render_template, make_response, redirect, url_for, session, g import sqlite3 imp..
[dreamhack] Mango 문제풀이
2021. 6. 24. 21:25
워게임/dreamhack
[WEB] Mango 문제풀이 NoSQL은 SQL을 사용해 데이터를 조회/추가/삭제하는 관계형 데이터베이스(RDBMS)와 달리 SQL을 사용하지 않으며, 이에 따라 RDBMS와는 달리 복잡하지 않은 데이터를 다루는 것이 큰 특징이자 차이점이다. NoSQL 데이터베이스는 단순 검색 및 추가 작업을 위한 매우 최적화된 저장 공간이다. MangoDB는 key-value의 쌍을 가지는 JSON objects 형태인 도큐먼트를 저장한다. 예를 들어 number가 30보다 작은 데이터를 찾기 위해서 RDBMS에서는 select * from inventory where number>30; 이라는 sql 쿼리를 사용한다. MangoDB에서는 db.inventory.find({number:{<:30}}) 와 같은 쿼..
[dreamhack] simple-ssti 문제풀이
2021. 6. 20. 09:00
워게임/dreamhack
[WEB] simple-ssti 문제풀이 SSTI(Server Side Template Injection) 취약점은 공격자가 서버 측의 기본 템플릿 구문을 이용하여 악성 페이로드를 삽입한 다음 서버 측에서 실행되면서 생기는 취약점이며 웹 템플릿 엔진마다 사용되는 페이로드가 다르다.. 템플릿 언어란 언어의 변수 및 문법을 html 안에서 쓸 수 있도록 제공해주는 언어이다. django의 경우는 파이썬과 html을 같이 사용할 수 있다. 이런 템플릿을 이용하면 간단하면서 동적인 페이지를 만들 수 있다. flask의 jinja2 문법을 사용할 경우 {{..}} 형태의 템플릿을 사용한다. {{7*7}}이 템플릿 언어로 삽입되면 49라는 결과 값을 출력한다. 아래 사진은 통용적인 템플릿 언어를 사용하면서 서버 측..
[dreamhack] web-misconf-1 문제풀이
2021. 6. 15. 23:04
워게임/dreamhack
[WEB] web-misconf-1 문제풀이 문제를 확인해보자. 기본 설정을 사용한 서비스에 로그인 후 Organization에서 플래그를 확인하라고 한다. 접속해보자. 나는 계정을 모른다. 기본 설정을 사용하는 서비스라고 했으니, 혹시 default 계정이 있는지 구글링을 해보자. 초기계정은 admin/admin 이라고 한다. 접속해보자. 로그인이 성공했다. 그럼 Organization 을 확인해봐야한다. 한국말로 해석하면 조직이다. 번역기 돌렸다. 조직 관련된 내용이 있는지 메뉴를 다 뒤져보자. 경로는 server admin > setting > auth.anonymous > org_name 이다. 왜 여기에 플래그가 있었으며, 티오리 형님이 왜 여기다가 플래그를 뒀는지는 모르겠다. 플래그가 나왔지만..
[dreamhack] php-1 문제풀이
2021. 6. 15. 22:17
워게임/dreamhack
[WEB] php-1 문제풀이 LFI(Local Include Inclusion) 취약점 이란 공격 대상 서버에 위치한 파일을 포함시켜 읽어오는 공격을 말한다. 특수문자 필터링 혹은 디렉터리 권한 설정이 적절하지 않을 때 LFI 취약점이 발생할 수 있는데 예를 들어 filename 파라미터 값에 ../../../../etc/passwd와 같은 값을 넘겨주면 해당 파일을 include 할 수 있다. inculde() 함수 외에도, include_once(), require(), require_once(), file_get_contents() 등의 함수로부터 해당 취약점이 발생할 수 있다. PHP Wrapper란 파일 시스템 함수와 함께 사용하기 위한 다양한 URL 스타일 프로토콜을 내장 wrapper가 제..
[dreamhack] proxy-1 문제풀이
2021. 6. 8. 23:39
워게임/dreamhack
[WEB] proxy-1 문제풀이 Raw Socket이란 '어느 특정한 프로토콜 용의 전송 계층 포맷팅 없이 인터넷 프로토콜 패킷을 직접적으로 주고 받게 해주는 소켓'을 말한다. 즉, 인터넷 통신은 TCP/IP의 4계층의 단계별로 포맷팅되고 전송되는 과정을 거치는데 Raw Socket을 이용하면 Application 단계에서 통신 데이터를 조작할 수 있는 것을 말한다. nmap이나 wireshark 등의 프로그램이 Raw Socket을 사용하며, Proxy 도구인 Burp도 마찬가지이다. 문제를 확인해보자. Raw Socket Sender가 구현된 서비스에서 요구조건을 맞춰서 플래그를 획득하라고 한다. 일단 접속해보자. Raw Socket Sender 링크를 클릭해보자. host, port, data를 ..
[dreamhack] Carve Party 문제풀이
2021. 6. 8. 22:44
워게임/dreamhack
[WEB] Carve Party 문제풀이 자바스크립트(JavaScript)는 객체(object) 기반의 스크립트 언어이다. 자바스크립트로 작성한 프로그램은 스크립트(script)라고 부르며, 스크립트는 웹 페이지의 HTML 안에 작성할 수 있다. HTML 안에 작성된 스크립트는 웹 페이지를 불러올 때 자동으로 실행된다. 컴퓨터나 스마트폰 등에 포함된 대부분의 웹 브라우저에는 자바스크립트 인터프리터가 내장되어 있기 때문에 컴파일 없이 웹의 동작을 구현할 수 있다, 문제를 확인해보자. 호박을 10,000번 클릭하고 플래그를 획득하라고 한다. 문제 파일을 다운로드 해보자. click the pumpkin to make a jack-o-lantern! 10000 more clicks to go! html 파일이..
[dreamhack] csrf-1 문제풀이
2021. 6. 2. 16:52
워게임/dreamhack
[WEB] csrf-1 문제풀이 CSRF(Cross-site request forgery) 취약점은 웹사이트 취약점 공격방법중 하나로, 사용자가 자신의 의지와는 상관없이 공격자가 의도한 수정, 삭제, 등록 행위 등 특정 웹사이트에 요청하게 하는 공격이다. 문제를 확인해보자. 입력받은 URL을 확인하는 봇이 구현된 서비스에서 CSRF 취약점을 이용한 FLAG 획득 문제이다. 접속해보자. csrf 페이지에 접속해보자. csrf 페이지에 접속하면 csrf 파라미터로 alert(1)를 실행하는 스크립트 구문을 전달한다. 응답 화면에서는 script 구문이 필터링된 것을 볼 수 있다. -> alert(1) memo 페이지에 접속해보자. memo 페이지에 접속하면 memo 파라미터로 hello를 전달하고, 응답 화..
[dreamhack] image-storage 문제풀이
2021. 6. 2. 14:32
워게임/dreamhack
[WEB] image-storage 문제풀이 파일 업로드 취약점이란 파일 업로드 기능이 존재하는 웹 어플리케이션에서 확장자 필터링이 제대로 이루어지지 않았을 경우 공격자가 악성 스크립트 파일(웹쉘)을 업로드하여 해당 웹쉘을 통해 원격에서 시스템을 제어할 수 있는 취약점을 말한다. 문제를 확인해보자 PHP로 작성된 이미지 저장소를 이용하여 파일 업로드 취약점을 동작시키고, flag를 획득하는 문제이다. 접속해보자. 업로드를 성공시켜야 하니 Upload 페이지를 들어가보자. 이런거 또 파일 바로 안올려보면 섭섭하지. 하수들은 업로드 구간이 보이면 웹쉘부터 때려박지만 나는 부끄럼이 많기 떄문에 print 구문부터 올려볼거다. php 구문으로 echo에 작성된 내용을 출력하는 JJANG.py 파일을 생성한다. ..