web-dev-qa-db-ja.com

OWASPジュースショップへの<script> alert( "1")</ script>の注入が機能しない

XSS攻撃の背後にある理論を学んだところですが、今度は自分の知識を合法的にテストしたいと思います。

私は「ハック」したかった OWASPジュースショップ この手順に従って セクション「反映されたXSS攻撃を実行する」。 XSSペイロードとしてiframe src="javascript:alert(1)">を使用すると、期待どおりに機能します(アラート_1_が表示されます)。しかし、それを<script>alert(1)</script>に変更しても何も起こらず、アラートが表示されません。

enter image description here

ChromeペイロードがDOMに注入されたが、何らかの理由でスクリプトが実行されなかった開発者ツールを使用して確認しました。理由がわかりませんか?OWASP Juiceにより高度なペイロードを注入するにはどうすればよいですか?ショップ?

1
Paweł Adamski

私は先に進んで、ペイロードを注入するOWASPジュースショップアプリケーションのエンドポイントを特定しようとしました。私が間違っている場合は修正してください。ただし、ペイロードが検索フィールドから挿入されているようです。

これはDOMベースのXSSであり、XSSを反映していないようです。 ペイロードはinnerHTMLメソッドに渡される であるため、これは注意することが重要です。

_<div *ngIf="searchValue"><span>{{"TITLE_SEARCH_RESULTS" | translate}} - 
</span> <span [innerHTML]="searchValue"></span></div>
_

<script>alert(1)</script>は、前述のようにinnerHTMLを介して注入された場合は実行されません here

scriptを使用して挿入されたinnerHTML要素は、挿入時に実行されません。

代わりに、<iframe src=javascript:alert(1)><img src=x onerror=alert(1)>などのペイロードを使用することをお勧めします。

6
EdOverflow

ブラウザのXSSフィルタがスクリプトをキャッチしているようです。これは一般的な防御メカニズムですが、それを回避する方法はまだあります(iframeからスクリプトを読み込むなど)。

ここで何が起こっているのかを理解するために、XSSフィルターを調べて回避することをお勧めします。 OWASPの XSSフィルター回避チートシート は、開始するのに非常に適しています。

0
securityOrange

おっと、この攻撃を正確にどのように実行したいのかはわかりませんが、このスクリプトを別の方法で挿入してみることができると思います。生のjsスクリプトを置く代わりに、jsfuck.comを使用できます。これは、Javaスクリプトを同じコードに変換しますが、[などの特定のチャーターのみを使用します。入力ではガベージのように見えますが、実際には実行されるため、ブラウザでjsコードとして扱われます。

0
Pankejk