썸네일 Dreamhack simple_sqli_chatgpt 문제 풀이 1. 문제 설명SQL Injection 취약점을 이용하여 flag를 획득하면 되는 간단한 문제이다. 2. 문제 풀이먼저 주어진 페이지에 접속하면 위와같이 간단한 로그인만 할 수 있는 창이 뜬다. 주어진 파일을 읽어보다보면, userid == 'admin' and userlevel == 0일때 flag를 획득할 수 있는 것처럼 보인다. 먼저 간단하게 userlevel에 0을 집어 넣었을때, guset로 로그인되는 것을 확인할 수 있다. userlevel이 0이면서 userid도 admin으로 처리하려면, 간단하게 AND 구문을 시도해보면 될 것 같다. userlevel을 받는 칸이기 때문에 0'으로 userlevel은 0, AND userid='admin을 통해 작은 따옴표를 닫지 않음으로써 작은 따옴표의..
썸네일 Dreamhack XSS Filtering Bypass 문제 풀이 1. 문제 설명XSS Filtering Bypass 문제라고 한다. 아무래도 필터링을 우회하는 문제이지 않을까 싶다. 2. 문제 풀이드림핵 웹문제의 기본적인 홈페이지 틀을 따라간다. vuln(xss)를 클릭하였을때 위와 같이 나타난다. 이미지가 깨져서 나온다. memo를 눌렀을때 위와같이 hello라고 뜬다. 아무래도 이 메모창에 flag값을 띄워야 하는것으로 보인다. flag를 누르면 역시 기존 문제들과 같이 스크립트를 입력할 수 있게 되어있다. script, on, javascript라는 구문이 들어가있으면, 필더링하여 공백으로 치환해주는 것을 확인할 수 있다. 그렇다면 이 우회를 이용한다. 처럼 flag 값을 띄울 수 있는 구문을 먼저 작성해주고 document.locatioonn.href='/me..
썸네일 Dreamhack image-storage 문제 풀이 1. 문제 설명 파일 업로드 취약점을 이용하여 flag 값을 얻으면 되는 문제다. php파일을 업로드 하여 해결하면 될 것처럼 보인다. 2. 문제 풀이 간단한 페이지가 하나 뜬다. List를 눌러보았을 때 아무것도 뜨지 않는데, 파일을 업로드하면 뜰 것 같다. 업로드 페이지는 파일을 업로드 할 수 있도록 구성되어 있다. upload.php 파일을 보았을 때, 딱히 확장자 제한같은게 없는 모습이다. 이런 경우 php파일을 그냥 업로드 하면 될 것이라고 생각한다. 라는 php 구문을 사용하고, system 명령어를 통해 /flag.txt를 cat하면 될 것 같다. test.php로 저장하자. 파일을 업로드 하였을 때, 정상적으로 업로드 되었다고 나타난다. 다시 List로 들어가면, 업로드한 tes..
썸네일 Dreamhack csrf-2 문제 풀이 1. 문제 설명 csrf 취약점을 이용하여 flag 값을 획득하는 문제이다. 이전에 풀어본 csrf 문제와 비슷하게 풀이하면 문제가 손쉽게 풀릴 것으로 생각한다.밑 링크는 csrf-1 문제 풀이이다. Dreamhack csrf-1 문제 풀이1. 문제 설명csrf 취약점을 이용하여 FLAG값을 얻어내는 문제이다. 기존에 풀이했었던 xss와 동일한 방식으로 생각해보면 되지 않을까 싶다. 2. 문제 풀이간단하게 기존 Web 문제랑 동일한 형식으로mori.ee 2. 문제 풀이 위와 같이 드림핵에서 제공하는 웹해킹의 기본적인 홈페이지 틀이다. vuln(csrf)를 클릭했을 때, 위와 같이 나타나는데, script가 *로 치환된 것을 확인할 수 있다. 위 소스코드를 잘 보면 change_password부분이 있..
썸네일 Dreamhack csrf-1 문제 풀이 1. 문제 설명csrf 취약점을 이용하여 FLAG값을 얻어내는 문제이다. 기존에 풀이했었던 xss와 동일한 방식으로 생각해보면 되지 않을까 싶다. 2. 문제 풀이간단하게 기존 Web 문제랑 동일한 형식으로 페이지가 구성되어 있음을 확인 가능하다. vuln(csrf) page를 눌러보면 script가 필터링 된거 같이 나온다. 즉 script를 사용하지 못하는 것 같다. 앞선 문제들 처럼 memo 페이지에 FLAG값을 출력하면 될 것 같다. notice_flag는 Access Denied가 뜨면서 접근이 불가능하다.소스코드를 살펴보자.#!/usr/bin/python3from flask import Flask, request, render_templatefrom selenium import webdriver..
썸네일 Dreamhack xss-2 문제 풀이 1. 문제 설명예전에 풀었던 xss-1 문제랑 비슷하게 풀이하면 될 것으로 판단된다.xss-1 문제는 하단 링크를 참조 Dreamhack xss-1 문제 풀이1. 문제 설명XSS 취약점 이용, flag.txt와 FLAG 변수에 플래그 값이 있음을 확인한다. 2. 문제 풀이from flask import Flask, request, render_templatefrom selenium import webdriverfrom selenium.webdriver.chrome.service import Serviceimmori.ee 2. 문제 풀이가장 먼저 app.py 파일을 다운로드 받아 확인해봤는데, xss-1 문제와 별반 다를바가 없다.처음 홈페이지에 들어 왔는데, vuln?param=가 먹히지 않음을 확인하였..
썸네일 Dreamhack simple_sqli 문제 풀이 1. 문제 설명SQL Injection 취약점을 이용하여 Flag 값을 획득하면 되는 문제이다. 2. 문제 풀이첫 화면에는 로그인 버튼만 놓여 있다. 코드를 먼저 살펴보자. id와 pw가 전부 guest라는 계정과 admin과 비밀번호가 난수인 계정 두개가 존재한다. 하단에 query_db를 보면 userid와 userpassword를 처리하는 부분이 있는데, 이 부분에서 비밀번호 부분을 주석처리한다면, 쉽게 뚫릴것 같다. admin"--로 비밀번호 부분은 무시해주면서 userid에는 admin이 들어가게 해주고, 비밀번호에는 아무 글자나 입력한다. 그리고 나서 엔터를 눌러 로그인을 시도하면 정상적으로 FLAG 값이 출력됨을 확인할 수 있다. 3. 정리엄청 간단한 문제였다. 비밀번호 부분을 주석으로 처리..
썸네일 Dreamhack web-misconf-1 문제 풀이 1. 문제 설명기본 설정을 사용한 서비스다. 흠... 당최 이해가 되지 않는다. 문제에 한번 부딫혀보자. 2. 문제 풀이Grafana라는 모니터링용 프로그램이 실행되는 모습이다. admin에 admin이 Default인 경우가 많으니 한번 접속해보자. 접속이 됐다. 그러면 Organization에 숨겨진 flag만 찾으면 될 것 같다. 이것저것 찾다 보니 Server admin의 setting에 org_name이 flag로 설정된 것을 확인할 수 있다. 3. 정리간단하다. 출제자의 의도는 default 계정을 사용하지 말자 같은데... 문제가 쉽게 풀렸다.
썸네일 Dreamhack Carve Party 문제 풀이 1. 문제 설명간단하게 나와있다. 따로 접속 주소 없이 파일만 주어진다. 2. 문제 풀이10000번 클릭하면 잭오랜턴으로 만들어지나보다. 4번정도 클릭해봤을때 숫자가 줄어든다. 푸는 방법이 여러가지 일것 같은데, 직접 1만번 클릭부터 오토마우스, 클릭할때 1000개정도씩 감소하게 만들어서 10번 정도 누르거나 반복문으로 저 변수의 값을 바꿔주는거. 가장 마지막이 맞을것 같다. 저기 저부분에서 몇개를 누르는지 카운트 되는거 같다. 저 부분에 while 반복문을 추가하면 쉽게 문제가 풀릴것 같다. counter 위에 while 반복문 밑에 있는 if와 동일한 조건으로 추가해줬다. 저장 후 1회 클릭하면 정상적으로 플래그가 나타난다. 3. 정리상당히 간단한 문제로, 파일을 잘 읽어보면 그 안에서 코드만 수정해..
썸네일 Dreamhack command-injection-1 문제 풀이 1. 문제 설명특정 호스트, 예를 들어 mori.ee나 8.8.8.8같은 호스트에 ping 패킷을 보내는 서비스를 제공하는 사이트. Command injection 취약점을 이용하여 flag.py 안에 있는 FLAG 값을 획득하면 된다. 2. 문제 풀이주어진 사이트에서 Ping을 누르면 다음과 같이 뜬다. 먼저 8.8.8.8로 보냈을때 핑은 31ms라는 결과를 보여준다. app.py를 살펴보면 host라는 값을 사용자에게 입력받아 "{host}" 형식으로 처리하는 것을 알 수 있다. 이를 해결하기 위해서는 큰 따옴표를 무시하고 명령어가 들어가야한다. 큰 따옴표를 무시하고 다중명령어를 실행할 수 있도록 세미콜론을 넣어 8.8.8.8";cat flag.py"값을 직접 입력했으나, 형식과 일치시키라는거 보니 ..
썸네일 Dreamhack pathtraversal 문제 풀이 1. 문제 설명path traversal 취약점을 통해 /api/flag 경로에 있는 flag값을 획득하면 되는 문제다. path traversal은 취약한 특정 부분에 경로를 대입하여 서버 내부의 파일에 접근할 수 있는 취약점이다. 2. 문제 풀이Get User Info 버튼이 좀 의심스럽다. 입력부에 guest와 admin을 입력하여 View했을때, 다음과 같이 출력된다. 주어진 파일을 보면 POST부분에서 userid부분을 통해 요청을 처리하는거 같다. Burp Suite를 통해 확인하였을 때, userid가 guest에서는 0으로, admin에서는 1로 들어간다. userid부분을 ../flag로 바꾸어서 path traversal 공격을 시도해 본다. 간단하게 플래그 값을 구할 수 있다. 3. ..
썸네일 Dreamhack session 문제 풀이 1. 문제 설명저번에 풀어봤던 session-basic과 얼추 비슷할거라고 생각이 되긴 하나, 문제를 천천히 보면서 풀이해볼 생각이다. 2. 문제 풀이페이지에 접속하면 간단한 화면이 출력된다. 먼저 제공된 파이썬 파일을 확인해봤더니, guest, user, admin 총 3가지 계정이 존재하며, admin은 FLAG를 부여한다. session_id와 session_storage를 잘 보면 urandom(4)와 urandom(1)의 존재를 확인 가능하다. 아무래도 session과 연관된 부분일거라고 생각이 된다. 로그인을 먼저 해보면 대략 감이 잡힐 듯 싶다. 3번정도 시도해봤을 때, urandom(4).hex는 16진수의 8자리 문자열을 무작위로 생성해낸다는 결과를 얻었다. 혹시 모르니 저번에 풀어본 s..