[1] λ¬Έμ νμ
λ¬Έμ νλ©΄μ΄λ€.
ν΄μμ ν΄λ³΄λ©΄,
μ무 μ€λͺ
ν¬λ‘μ€ μ¬μ΄νΈ μ€ν¬λ¦½ν μ λ¨μν λ°μ΄ν°λ₯Ό μ¬λ°λ₯΄κ² μ΄μ€μΌμ΄ννλ κ²μ΄ μλλλ€. λλ‘λ 곡격μκ° DOMμ μλ‘μ΄ μμλ₯Ό μ½μ νμ§ μκ³ λ λμ μΌμ ν μ μμ΅λλ€.
μ무 λͺ©ν
alert()μ ν리μΌμ΄μ 컨ν μ€νΈμμ νμ μ νμνλ μ€ν¬λ¦½νΈλ₯Ό μ½μ ν©λλ€ .
λΌκ³ νλ€.
μ€λ μλ‘μ΄ λ² ν groovy 2.0μ λ°ννλ€κ³ νλ€.
sign up μ λλ¬λ³΄μ.
e-mailμ μ λ ₯ν λ€ nextλ²νΌμ λλ₯Ό μ μλλ‘ λμ΄μλ€.
μμ URLμ 보μμ λ, /signup νμ΄μ§μ next νλΌλ―Έν°λ‘ confirmμ μ μ‘νλ κ²μΌλ‘ 보μ,
μ λ ₯νκ² λλ e-mailκ°μ ν΅ν΄ xss 곡격μ νλ κ²μ΄ μλμ§... μμν΄λ³΄μλ€.
κ·Έλμ μΌλ¨ μ΄λ©μΌ μ λ ₯ μΉΈμ μ λ κ² μ λ ₯μ ν΄λ΄€λλ...
λ€μ μ΄κΈ° νλ©΄μΌλ‘ λμμ€κ³ μ무 λ³νλ μκΈ°μ§ μμλ€.
κ°μ μ‘μ μ μμ΄μ ννΈ 4κ°λ₯Ό λ€ νμΈνλ€.
1. μ΄ λ 벨μ μ λͺ©μ΄ ννΈ
2. signup frameμ μμ€λ₯Ό 보λ κ²κ³Ό URL νλΌλ―Έν°κ° μ¬μ©λλ κ²μ 보λ κ²μ΄ μ μ©νλ€.
3. onclick νΈλ€λ¬λ₯Ό μ¬μ©νμ§ μκ³ λ§ν¬λ₯Ό ν΄λ¦νλ©΄ Javascriptκ° μ€νλλλ‘ νλ €λ©΄ μ΄λ»κ² ν΄μΌ νλ?
4. μ§μ§ λ§νλ©΄, https://datatracker.ietf.org/doc/html/draft-hoehrmann-javascript-scheme-00 μ¬κΈ°λ₯Ό 보λΌλλ°...
μ°μ μ΄ λ 벨μ μ λͺ©μ "Breaking protocol" μ΄λ€.
λμκ² λμμ΄ λμ§ μμλ€.
κ·Έ λ€μμΌλ‘ signup frameμ μμ€λ₯Ό 보λΌκ³ νλλ°,
μλ§ signup.htmlμ 보λΌλ λ»μΈ κ² κ°μ νμΈν΄λ³΄λλ‘ νκ² λ€.
signup.html
<!doctype html>
<html>
<head>
<!-- Internal game scripts/styles, mostly boring stuff -->
<script src="/static/game-frame.js"></script>
<link rel="stylesheet" href="/static/game-frame-styles.css" />
</head>
<body id="level5">
<img src="/static/logos/level5.png" /><br><br>
<!-- We're ignoring the email, but the poor user will never know! -->
Enter email: <input id="reader-email" name="email" value="">
<br><br>
<a href="{{ next }}">Next >></a>
</body>
</html>
μ΄ λΆλΆμ 보면, Next λ₯Ό λλ μ λ next μΈμμ κ°μ κ°μ§ λ§ν¬λ‘ μ΄λνλ κ²μ μ μ μλ€.
11λ² μ€μμ μ΄λ° λ¬Έκ΅¬κ° μ νμλ κ²μ λ³΄κ³ , confirm.htmlμ νμΈν΄λ³΄μλ€.
confirm.html
μ΄μ κ°μ΄, confirm.html μ μμ€μ½λλ₯Ό 보λ email κ°μ μ λ¬λμ§ μκ³ μλ€.
λλ¬Έμ URL μμ μ λ ₯ν μ μλ next κ°μ ν΅ν΄ XSS 곡격μ μνν΄μΌ νλ€.
μμ κ°μ΄ URL λ‘ μ λ ₯λ°μ next κ°μ confirm.html μμ window.location μμ λ€μ΄κ°κ³ μλ€.
Next λ§ν¬λ₯Ό ν΄λ¦ν λ, μ‘°κ±΄λ¬Έμ΄ μ‘΄μ¬νλ€κ³ νλ€.
1. next κ°μ signup μ΄ ν¬ν¨λλ©΄ signup.html λ‘ μ΄λ
2. next κ°μ confirm μ΄ ν¬ν¨λλ©΄ confirm.html λ‘ μ΄λ
3. next κ°μ΄ 1,2 μ΄μΈμ κ°μ΄λ©΄ welcome.html λ‘ μ΄λ
2λ² μ‘°κ±΄μ κ²½μ° confirm μ ν¬ν¨ν μ΄λ€ next κ°μ μ£Όμ΄λ λͺ μ΄ λ€μ λͺ¨λ welcome.html λ‘ μ΄λνμλ€. next κ°μ welcome μΌλ‘ λ°κΏμ£Όλ λ‘μ§μ΄ μ‘΄μ¬νλ κ² κ°λ€κ³ νλ€.
λ°λΌμ signup.htmlμ μ€ν¬λ¦½νΈλ₯Ό μ£Όμ νμ¬ alert()λ₯Ό νμ ν΄μΌ νλ€.
λ§ν¬λ‘ alert() λ₯Ό μ€ννλ λ°©λ² μ€μ javascript:alert() λ₯Ό μ΄μ©νλ λ°©λ²μ΄ μλ€κ³ νλ€.
μ΄λ₯Ό μ΄μ©νμ¬ XSS λ₯Ό μνν΄λ³΄λ©΄,
next κ° : javascript:alert(1)
μ μ©λλ <a> νκ·Έ : <a href = "javascript:alert(1)">Next >></a>
μ λ΅!
[2] μ°Έκ³
https://binwalk.tistory.com/124
https://raise-meow.tistory.com/232
'SWLUG > μΉ ν΄νΉ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[webhacking.kr] Challenge old-23 (0) | 2023.11.09 |
---|---|
[Dreamhack/λλ¦Όν΅] xss-2 (0) | 2023.11.06 |
[Dreamhack/λλ¦Όν΅] xss-1 (0) | 2023.11.05 |
[Dreamhack/λλ¦Όν΅] DOM XSS (0) | 2023.11.05 |
[los.rubiya.kr] orc (1) | 2023.10.07 |