post(3)
-
Web - Server | HTTP - POST
Give a try! 버튼을 눌러서 Best Score인 999999를 넘기면 되는 문제 같습니다. Give a try! 버튼을 눌러봤더니 188150이 나왔네요. 아무래도 랜덤으로 값을 출력해주는 것 같으니, 소스코드를 뜯어보겠습니다. 역시나 .random()을 써서 랜덤 값을 출력해주고 있었습니다. score라는 변수에 hidden 속성으로 값이 들어가네요. Burp Suite를 켜서 score 변수가 존재하는지 확인해보겠습니다. score 변수가 존재했습니다. 아까 버튼을 눌렀을 때 나왔던 숫자가 그대로 들어가 있는 걸 보니, 이 변수의 값을 9999999로 바꾸면 될 것 같습니다. FLAG가 나왔습니다.
2022.06.10 -
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