๐ ๋ฌธ์ ํด๊ฒฐ ์ฐธ๊ณ ์ฌ์ดํธ
- https://keyme2003.tistory.com/entry/CSP-Bypass-Advanced
- https://yun-2.tistory.com/entry/CSP-Bypass-Advanced
์ฐ์ ๋ฌธ์ ํ์ด์ง์ ์ ์ํ๋ฉด ์์ ๊ฐ์ ํ์ด์ง๋ฅผ ํ์ธํ ์ ์๊ณ ๊ฐ ์นดํ ๊ณ ๋ฆฌ์ ์ ์ํด๋ณด์๋ ๋ณ๋๋ก ํ์ธํ ์ ์๋ ๋ถ๋ถ์ด ์์ผ๋ฏ๋ก ๋ฌธ์ ์์ ์ ๊ณต๋ ์์ค์ฝ๋๋ฅผ ํ์ธํด๋ณด์.
def check_xss(param, cookie={"name": "name", "value": "value"}):
url = f"http://127.0.0.1:8000/vuln?param={urllib.parse.quote(param)}"
return read_url(url, cookie)
@app.after_request
def 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 response
์์ ๊ฐ์ด ๋ฌธ์ ์ฝ๋๋ฅผ ํ์ธํด๋ณด๋ฉด base-src๊ฐ ์ค์ ๋์ง ์์ ๊ฒ์ ์ ์ ์๋ค.
์ด๋, base-src๋ ์ค์ ๋์ด ์์ง ์์ ๊ฒฝ์ฐ default๋ก base ํ๊ทธ๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
<base> ํ๊ทธ์ ๊ฒฝ์ฐ HTML ๋ฌธ์ ๋ด์์ ์๋์ ์ธ URL ๊ฒฝ๋ก๋ฅผ ๊ธฐ์ค URL๋ก ์ค์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ํ๊ทธ๋ก, ์ด ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ์๋์ ์ธ URL์ด ๊ธฐ์ค URL์ ๊ธฐ์ค์ผ๋ก ํด์๋๊ณ ์ํ๋ ๊ฒฝ๋ก๋ก ์ฐ๊ฒฐ๋๋ค๋ ํน์ง์ด ์๋ค.
๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ํตํด HTML ์คํฌ๋ฆฝํธ๋ฅผ ํ์ธํด๋ณด๋ฉด <script src="/static/js/jquery.min.js" nonce></script> ๊ฒฝ๋ก๋ก jquery ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ถ๋ฌ์ค๊ณ ์์์ ํ์ธํ ์ ์๋ค.
์ ๊ณผ์ ์ ํตํด base ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ๊ณต๊ฒฉ์ ํด์ผํ๋ค๋ ๊ฒ์ ์ ์ ์์์ผ๋, ์ดํ ์ ๊ทผ ๋ฐฉ๋ฒ์ ์ฐพ์ง ๋ชปํด ์ฌ๋ฌ ๋ธ๋ก๊ทธ๋ฅผ ์ฐพ์๋ณธ ๊ฒฐ๊ณผ ๊ฐ์ธ ์๋ฒ๋ฅผ ๊ตฌ์ถํ์ฌ ๊ฒฝ๋ก๋ฅผ ๊ตฌ์ถํ ๊ฐ์ธ ์๋ฒ๋ก ๋ณ๊ฒฝํ ํ ํด๋น ์คํฌ๋ฆฝํธ ํ์ผ์ ์๋ฒ์ ์ ๋ก๋ ํด์ฃผ๋ ๋ฐฉ์์ผ๋ก ํด๊ฒฐํด์ผ ํ๋ค.
๋ฐ๋ผ์, ์๋์ ๊ฐ์ด ๊ฐ์ธ์๋ฒ๋ฅผ ๊ตฌ์ถํด์ฃผ์๋ค. ์ด๋, ์ ์ํ ์ ์ ๊ฐ์ธ์๋ฒ๋ public์ผ๋ก ๋ง๋ค์ด์ฃผ์ด์ผ ํ๋ฉฐ private์ผ๋ก ๋ง๋ค๊ฒฝ์ฐ ์ ์์ ์ผ๋ก ์์ฑ ๋ฐ ๊ณต๊ฒฉ ์๋์ ์คํจํ ์ ์๋ค.
๐ ๊นํ๋ธ ๊ฐ์ธ์๋ฒ ๊ตฌ์ถ ๋ฐฉ๋ฒ
- ์ฐธ๊ณ ๋งํฌ: Github.io ํ์ด์ง ๋ง๋ค๊ธฐ
์ดํ ๊ณต๊ฒฉ์ ์ํ ์คํฌ๋ฆฝํธ ๊ตฌ๋ฌธ์ ์์ฑํ๊ณ
ํ๋ผ๋ฏธํฐ์ base ํ๊ทธ๋ฅผ ํ์ฉํด์ ๊ฒฝ๋ก๋ฅผ ๋ณ๊ฒฝํ์ฌ ์์ฑํ ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์ ๋ ฅํ ํ
memo ํ์ด์ง๋ก ๋ค์ ๋์๊ฐ๋ฉด
์ฌ๋ฌ๋ฒ์ ๋ง์ ์๋ ๋์ ํ๋๊ทธ ๊ฐ์ ๋ณผ ์ ์์๋ค..
๋ฌธ์ ํด๊ฒฐ-!
'CTF โข WarGame > Web Hacking' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Dreamhack] CSS Injection (0) | 2024.11.20 |
---|---|
[Dreamhack] chocoshop wirte-up (0) | 2024.11.13 |
[Dreamhack] XSS Filtering Bypass Advanced wirte-up (1) | 2024.10.30 |
[Dreamhack] blind-command write-up (0) | 2024.10.02 |
[Dreamhack] web-ssrf write-up (0) | 2024.09.25 |