| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
- 리버싱
- webhacking
- 백엔드
- 루키즈31기
- Practical Malware Analysis Labs
- SK쉴더스루키즈
- 우아한테크코스
- 위상 정렬
- 예술의 전당
- sk 쉴더스
- 루키즈
- 알고리즘
- 프리코스
- top-cert
- 악성코드 분석
- 레나튜토리얼
- linux
- 루키즈 31기
- 자바
- 동적분석
- Dreamhack
- sk쉴더스 루키즈
- 깃
- 레나 튜토리얼
- sk 쉴더스 루키즈 31기
- c
- 웹개발
- sk 쉴더스 루키즈
- 우테코
- React
- Today
- Total
목록Dreamhack (4)
yon11b
simple-ssti문제전체 코드더보기#!/usr/bin/python3from flask import Flask, request, render_template, render_template_string, make_response, redirect, url_forimport socketapp = Flask(__name__)try: FLAG = open('./flag.txt', 'r').read()except: FLAG = '[**FLAG**]'app.secret_key = FLAG@app.route('/')def index(): return render_template('index.html')@app.errorhandler(404)def Error404(e): template = ''..
코드 분석 전 script 문자열 자체를 *로 바꾼다. on도 *로 바꾼다 코드 분석 @app.route("/vuln") def vuln(): param = request.args.get("param", "").lower() xss_filter = ["frame", "script", "on"] for _ in xss_filter: param = param.replace(_, "*") return param [필터링 되는 것들] (못 쓰는 거) script ScriPT img src=z onerror 이런 건 안 되지만 잘 우회하면 js도 실행이 될 것 같다. 이걸 제외하고 쓸 수 있는 우회 기법은 아래와 같다. csrf-1에서 썼던 방법이다. 이제 어디에서 무엇을 알아내야 할지를 보자. users 정보이..
xss-1과 비교해보자. xss-1에서의 vul 페이지 화면이다. param=test를 넣었다. param=를 하면 js가 실행된다 xss-2에서의 페이지 화면이다. 여기서는 가 실행되지 않는다. var x=new URLSearchParams(location.search); document.getElementById('vuln').innerHTML = x.get('param'); 해석 변수 x=URLSearchParams: url의 params 값을 확인 document.getElementById(’vuln’).innerHTML: Id 값이 vuln인 html값을 가져옴. 그 값을 x.get(’param’)으로 바꾼다 innerHTML 란? param= 이렇게 해봤는데도 안 됐다. innerHTML 쉽게..
문제 문제 화면 코드 #!/usr/bin/env python3 from flask import Flask, request import os app = Flask(__name__) @app.route('/' , methods=['GET']) def index(): cmd = request.args.get('cmd', '') if not cmd: return "?cmd=[cmd]" if request.method == 'GET': '' else: os.system(cmd) return cmd app.run(host='0.0.0.0', port=8000) 코드 분석 ?cmd로 입력되지 않으면 return "?cmd=[cmd]" 을 한다 GET 방식으로 입력이 되면 ‘’ 이 된다. else인 경우에만 명령어가 ..