일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- Web
- 네트워크
- 리버싱
- 모의해킹
- network
- 워게임
- 순서도
- hacking
- 알고리즘
- 드림핵
- 비박스
- CodeEngn
- webhacking
- System
- XSS
- reversing
- 해킹
- 소프트웨어보안
- WarGame
- bee-box
- TCP
- dreamhack
- 네트워크보안
- 시스템
- 웹
- Webhaking
- 소프트웨어
- ftz
- 시스템해킹
- 웹해킹
- Today
- Total
목록Web (59)
Without a Break

코드 분석 @APP.route('/ping', methods=['GET', 'POST']) def ping(): if request.method == 'POST': host = request.form.get('host') cmd = f'ping -c 3 {host}' try: output = subprocess.check_output(['/bin/sh', '-c', cmd], timeout=5) return render_template('ping_result.html', data=output.decode('utf-8')) except subprocess.TimeoutExpired: return render_template('ping_result.html', data='Timeout !') except s..

코드 분석 @app.route("/", methods = ["GET", "POST"]) def index(): input_val = "" if request.method == "POST": input_val = request.form.get("input_val", "") m = re.match(r'dr\w{5,7}e\d+am@[a-z]{3,7}\.\w+', input_val) if m: return render_template("index.html", pre_txt=input_val, flag=FLAG) return render_template("index.html", pre_txt=input_val, flag='?') input_val에 입력된 값을 input_val에 저장 정규표현식 : dr → 아무..

문제 페이지로 들어가면 진짜 문자가 날라다닌다. 소스를 보면 각 문자 이미지가 있다. html 코드를 살펴보니 각 이미지 파일이 10 → 17 → 13 → 7 → ••• 순서로 있다. 아까 소스에서 발견한 각 이미지 파일의 문자를 코드에 있는 순서대로 배열하고 드림핵 형식을 맞춰주면 플래그를 찾을 수 있다.

[코드 분석] xss_filter(text) def xss_filter(text): _filter = ["script", "on", "javascript:"] for f in _filter: if f in text.lower(): text = text.replace(f, "") return text xss 공격을 막기 위한 필터링 script, on, javascript: 를 필터링 app.route("/vuln") @app.route("/vuln") def vuln(): param = request.args.get("param", "") param = xss_filter(param) return param /vuln 페이지에 접속했을 때의 동작 param의 값을 xss_filter를 통해 필터링하여 저..
보호되어 있는 글입니다.
보호되어 있는 글입니다.

[문제 코드] import os from flask import Flask, request from flask_mysqldb import MySQL app = 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['MYSQL_DB'] = os.environ.get('MYSQL_DB', 'users') mysql = MySQL(app) template..

문제 사이트에 들어가니 위와 같은 페이지가 나왔다. 문제 페이지에서는 사용자가 입력한 uid 값이 위와 같이 텍스트로 출력된다. 'or 1=1-- 코드를 삽입했을 때 syntax 에러가 발생한다. 에러 메세지만을 출력하고 쿼리 결과를 직접 노출하지는 않는다. error based sql injection의 공격 코드는 extractvalue 함수를 사용하여 작성할 것이다. extractvalue 함수는 첫 번째 인자로 전달된 XML 데이터에서 두 번째 인자인 XPATH 식을 통해 데이터를 추출하는 함수이다. from requests import get url = "http://host3.dreamhack.games:11687/" query = f"admin' and extractvalue(1, conca..