πŸ”’μ •λ³΄λ³΄μ•ˆ/μ›Ή λ³΄μ•ˆ

[WEB-HACKING] HTML 이벀트 속성 λͺ¨μŒ & XSS μ‘μš©

Janger 2021. 11. 15. 08:24
728x90

 

μ•„λž˜μ˜ 이벀트 속성듀은 λͺ¨λ‘ Script(μžλ°”μŠ€ν¬λ¦½νŠΈ)의 κ°’λ§Œμ„ λ°›κ³  있으며, μ‚¬μš©μžκ°€ νŠΉμ • 쑰건을 λ§Œμ‘±ν•˜κ²Œ 되면 μ΄λ²€νŠΈκ°€ λ°œμƒμ„ ν•˜κ²Œ λ©λ‹ˆλ‹€. 

 

 

[Window Event Attributes]

onafterprint
onbeforeprint
onbeforeunload
onerror
onhashchange
onload
onmessage
onoffline
ononline
onpagehide
onpageshow
onpopstate
onresize
onstorage
onunload

 

[Form Events]

onblur
onchange
oncontextmenu
onfocus
oninput
oninvalid
onreset
onsearch
onselect
onsubmit

 

 

[Mouse Events]

onclick
ondblclick
onmousedown
onmousemove
onmouseout
onmouseover
onmouseup
onmousewheel
onwheel

 

[Drag Events]

ondrag
ondragend
ondragenter
ondragleave
ondragover
ondragstart
ondrop
onscroll

 

[Clipboard Events]

oncopy
oncut
onpaste

 

[Media Events]

onabort
oncanplay
oncanplaythrough
oncuechange
ondurationchange
onemptied
onended
onerror
onloadeddata
onloadedmetadata
onloadstart
onpause
onplay
onplaying
onprogress
onratechange
onseeked
onseeking
onstalled
onsuspend
ontimeupdate
onvolumechange

 

[Misc Events]

ontoggle

 

 

 

 

생각보닀 정말 λ§Žμ€ 속성듀이 쑴재λ₯Ό ν•˜λŠ”λ°μš”. 아무리 μ›Ή κ°œλ°œμ„ 였래 ν•œλ‹€κ³  해도 μœ„μ˜ 속성듀을 μ „λΆ€ μ‚¬μš©ν•˜λŠ” 것은 μ–΄λ €μš΄ μΌμž…λ‹ˆλ‹€. 

 

 

 

 

이λ₯Ό μ•…μš©ν•˜μ—¬ ν•΄μ»€λŠ” μœ„μ˜ λ‹€μ–‘ν•œ 속성듀을 μ΄μš©ν•΄ XSS(Cross-Site Scripting)을 μ‹œλ„ν•΄ λ³Ό 수 μžˆλ‹€λŠ” 사싀..

 

 

곡개 κ²Œμ‹œνŒμ΄λ‚˜ μͺ½μ§€, Q/Aλ₯Ό μž‘μ„±μ„ ν•˜λŠ” 에디터 μ˜μ—­μ— λ‹€μ–‘ν•œ νƒœκ·Έλ“€κ³Ό ν•¨κ»˜ μ•„λž˜μ˜ 속성듀을 ν•¨κ»˜ 첨뢀할 μˆ˜κ°€ μžˆμŠ΅λ‹ˆλ‹€. 

 

 

μ €μ˜ 개인 μ‚¬μ΄νŠΈμ—μ„œ μ‹€μŠ΅μ„ ν•΄λ³΄μ•˜μŠ΅λ‹ˆλ‹€.

 

[XSS ν…ŒμŠ€νŠΈ]

μ•„λž˜μ˜ 속성듀을 ν΄λ¦½λ³΄λ“œμ— 볡사λ₯Ό ν•΄ Q&A κ²Œμ‹œνŒμ— λΆ™μ—¬ λ„£κΈ°λ₯Ό ν•œ λ‹€μŒμ— 글을 μ—…λ‘œλ“œν•©λ‹ˆλ‹€. 

 

 

κ·Έλ ‡κ²Œ 되면 μ‚¬μ΄νŠΈκ°€ 필터링을 ν•˜λŠ” ν‚€μ›Œλ“œμ™€ 필터링을 ν•˜μ§€ μ•ŠλŠ” ν‚€μ›Œλ“œλ“€μ„ 확인할 수 있게 λ©λ‹ˆλ‹€. 

ex) onloadstart -> on-loadstart

 

 

μœ„μ˜ 필터링을 κ±°μΉ˜μ§€ μ•Šμ€ 속성인 onplay 속성을 μ‚¬μš©ν•΄ λΉ„λ””μ˜€ νƒœκ·Έμ™€ ν•¨κ»˜ κ²Œμ‹œκΈ€μ„ μ—…λ‘œλ“œλ₯Ό ν•΄λ³΄κ²Œ 되면, 

 

νŠΉμ • 쑰건을 λ§Œμ‘±ν–ˆμ„ κ²½μš°μ—(λΉ„λ””μ˜€λ₯Ό 싀행을 μ‹œμΌ°μ„ λ•Œ) μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œκ°€ μ •μƒμ μœΌλ‘œ 싀행을 ν•˜λŠ” 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. 

 

 

 

μœ„μ˜ 곡격을 막을 수 μžˆλŠ” 방법은 μœ„μ˜ 이벀트 μ†μ„±μ˜ ν‚€μ›Œλ“œλ“€μ„ μ°Ύμ•„λ‚΄μ„œ 필터링을 κ±°μΉœλ‹€κ±°λ‚˜, μ•„λ‹ˆλ©΄ 더 μ•ˆμ „ν•œ λ°©μ‹μœΌλ‘œ 미리 ν—ˆμš©λœ νƒœκ·Έλ§Œ μ‚¬μš©ν•  수 μžˆλŠ” κ²ƒμ²˜λŸΌ νƒœκ·Έ λΆ€λΆ„μ—λŠ” 이벀트 속성 값이 μ•„μ˜ˆ μ˜€μ§€ λͺ»ν•˜λ„둝 제거λ₯Ό μ‹œν‚€λ©΄ λ©λ‹ˆλ‹€. 

 

 

HTML Event Attributes.txt
0.00MB

 

λ”μš± μžμ„Έν•œ 이벀트 속성 정보λ₯Ό ν™•μΈν•˜κ³  μ‹Άλ‹€λ©΄: 

https://www.w3schools.com/tags/ref_eventattributes.asp

 

 

728x90