dreamhack(57)
-
web-ssrf 풀이
/img_viewer 페이지에 들어가 보겠습니다. 기본값으로 /static/dream.png라는 url이 들어있습니다. View를 눌러서 무슨 파일인지 확인해보겠습니다. 그냥 드림핵 로고 그림의 png 파일이었습니다. 소스코드에서 elif 부분을 보면 POST 형식으로 보내야 한다는 걸 알 수 있습니다. 이제 어떻게 flag.txt를 찾아야 할지 생각해봐야 하는데, 여기서 local_host 변수를 보면 host는 127.0.0.1로 고정입니다. 하지만 local_port 변수는 1500~1800 사이 범위에서 랜덤으로 주어집니다. 그렇기에 이 port를 중심으로 Brute force를 돌려서 문제를 해결하면 될 것 같습니다. 또한, 코드에서 elif 안에 있는 elif를 보면 127.0.0.1을 필터링..
2021.08.25 -
blind-command 풀이
소스코드에서 두 번째 if를 보면 request의 method가 GET이 아니여야 os.system() 함수가 실행됩니다. 항상 GET, POST만 써서 생각나는 메소드가 POST 밖에 없는데 if문을 저렇게 작성을 해놓은걸 보면, POST 메소드가 아닌 다른 형식의 메소드가 있는 것 같습니다. https://developer.mozilla.org/ko/docs/Web/HTTP/Methods/HEAD HEAD - HTTP | MDN HTTP HEAD 메서드는 특정 리소스를 GET 메서드로 요청했을 때 돌아올 헤더를 요청합니다. developer.mozilla.org HEAD 메소드를 사용해서 문제를 풀어보겠습니다. 이번 문제는 웹페이지가 저렇게 되어있는 관계로 버프 스위트를 사용해서 풀어야 할 것 같습니..
2021.08.18 -
csrf-2 풀이
#!/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, cookie={"name": "name", "value":..
2021.08.17 -
xss-2 풀이
#!/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 = webdriver.ChromeOptions() for _ i..
2021.08.17 -
proxy-1 풀이
우선 웹페이지에서 Raw Socket Sender (Done)이라는 부분에 들어가 보겠습니다. host, port를 지정하고 거기에 원하는 Data를 보낼 수 있도록 구현해놓은 것 같습니다. 소스코드를 보면, /admin이라는 형식으로 POST에 접속했을 때 admin() 함수가 실행됩니다. 그리고 if문이 5개 보이는데, 이 조건들을 모두 불만족했을 때 FLAG를 획득할 수 있습니다. 조건 1. 로컬 호스트에서 접속하기 조건 2. user-Agent의 값이 'Admin Browser'이어야 함 조건 3. Dreamhackuser 헤더 값이 'admin'이어야 함 조건 4. 'admin'의 쿠키 값이 true여야 함 조건 5. userid의 값이 'admin'이여야 함 host는 127.0.0.1, po..
2021.08.11 -
basic_exploitation_003 풀이
#include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1); } void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); signal(SIGALRM, alarm_handler); alarm(30); } void get_shell() { system("/bin/sh"); } int main(int argc, char *argv[]) { char *heap_buf = (char *)malloc(0x80); char stack_buf[0x90] = {}; initialize(); read(0, heap_buf, 0x80..
2021.08.04