XSSとCSRF

7472 ワード

[XSS]
XSSとは?
XSS(Cross-site Scripting)は、SQL注入とともにWeb上で最も基本的な脆弱性攻撃方法であり、悪意のあるユーザーが攻撃しようとするサイトにスクリプトを加える技術を指す.
主に、サイト間スクリプトと呼ばれる他のWebサイトと情報を交換する方法で動作します.
OWASPは、「サイト間スクリプト(XSS)は、アプリケーションがブラウザに送信したページ上で発生し、ユーザが入力したデータを検証しない場合、または出力時に危険なデータを無効にしない場合」を示す.
Webアプリケーションがユーザーが入力した値を正しくチェックしていない場合、このような状況が発生します.攻撃に成功すると、ログインサイトのユーザーは挿入されたコードを実行し、Cookieやセッションタグなどの機密情報を取得します.
攻撃方法によってStored XSSとReflected XSSに分けられる.Stored XSSは、サイト掲示板やコメント、ニックネームなどのスクリプトをサーバに格納して実行する方式であり、Reflected XSSは通常、サーバにスクリプトを直接格納するのではなく、URLパラメータ(特にGET方式)にスクリプトを追加する.
XSS攻撃
  • スクリプトラベルを使用してJavaScript
  • を実行
    <script>alert('hello world');</script>
  • リンクラベルを使用してJavaScript
  • を実行
    <a href="javascript:alert('hello world')">링크</a>
  • イベント属性でJavaScript
  • を実行
    <img src='#' onerror="alert('hello world')"/>
  • ランダムタグのイベント属性でJavaScript(イベント属性リスト)
  • を実行
    <human oncopy="alert('hello world')">휴먼</human>
  • の一部ブラウザではjavascript:リンク間にスペース文字を含めることができ、HTML符号化で復号内容を出力することができ、HTMLコードラベルを挿入することでjavascript
  • を実行する.
    &#x3C;a href=&#x22;javascript:alert(&#x27;hello world&#x27;)&#x22;&#x3E;&#xB9C1;&#xD06C;&#x3C;/a&#x3E;
    
  • document.クッキーなどの単語をブロックする場合は、JavaScript乱読(exaaencode)のタグを挿入してスクリプト
  • を実行します.
    ゚ω゚ノ= /`m´)ノ ~┻━┻ //*´∇`*/ ['_']; o=(゚ー゚) =_=3; c=(゚Θ゚) =(゚ー゚)-(゚ー゚); (゚Д゚) =(゚Θ゚)= (o^_^o)/ (o^_^o);(゚Д゚)={゚Θ゚: '_' ,゚ω゚ノ : ((゚ω゚ノ==3) +'_') [゚Θ゚] ,゚ー゚ノ :(゚ω゚ノ+ '_')[o^_^o -(゚Θ゚)] ,゚Д゚ノ:((゚ー゚==3) +'_')[゚ー゚] }; (゚Д゚) [゚Θ゚] =((゚ω゚ノ==3) +'_') [c^_^o];(゚Д゚) ['c'] = ((゚Д゚)+'_') [ (゚ー゚)+(゚ー゚)-(゚Θ゚) ];(゚Д゚) ['o'] = ((゚Д゚)+'_') [゚Θ゚];(゚o゚)=(゚Д゚) ['c']+(゚Д゚) ['o']+(゚ω゚ノ +'_')[゚Θ゚]+ ((゚ω゚ノ==3) +'_') [゚ー゚] + ((゚Д゚) +'_') [(゚ー゚)+(゚ー゚)]+ ((゚ー゚==3) +'_') [゚Θ゚]+((゚ー゚==3) +'_') [(゚ー゚) - (゚Θ゚)]+(゚Д゚) ['c']+((゚Д゚)+'_') [(゚ー゚)+(゚ー゚)]+ (゚Д゚) ['o']+((゚ー゚==3) +'_') [゚Θ゚];(゚Д゚) ['_'] =(o^_^o) [゚o゚] [゚o゚];(゚ε゚)=((゚ー゚==3) +'_') [゚Θ゚]+ (゚Д゚) .゚Д゚ノ+((゚Д゚)+'_') [(゚ー゚) + (゚ー゚)]+((゚ー゚==3) +'_') [o^_^o -゚Θ゚]+((゚ー゚==3) +'_') [゚Θ゚]+ (゚ω゚ノ +'_') [゚Θ゚]; (゚ー゚)+=(゚Θ゚); (゚Д゚)[゚ε゚]='\\'; (゚Д゚).゚Θ゚ノ=(゚Д゚+ ゚ー゚)[o^_^o -(゚Θ゚)];(o゚ー゚o)=(゚ω゚ノ +'_')[c^_^o];(゚Д゚) [゚o゚]='\"';(゚Д゚) ['_'] ( (゚Д゚) ['_'] (゚ε゚+(゚Д゚)[゚o゚]+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚Θ゚)+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚ー゚)+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (゚Θ゚)+ (゚Д゚)[゚o゚]) (゚Θ゚)) ('_');
    XSS防御
  • 入力値の検証
    データを入力する前に、または入力したデータをサーバに転送する前にフロントで検証することが望ましい.
  • 入力データの長さは
  • に制限.
  • 入力文字またはフォーマットが
  • であることを確認する.
  • 指定ルール以外の入力値
  • をキャンセルする.

  • 出力値の検証
    解釈の余地のある特殊文字を符号化して表示する必要があります.

  • セキュリティ・ライブラリの使用
    OWASPAntisamyやNAVERLucy XSS Filterなどの信頼性の高いライブラリを使用します.

  • httponlyプロパティの適用
    HttpOnlyはJavaScriptのドキュメントです.クッキーを使用してクッキーに接続するオプションを防止します.
  • [CSRF]
    CSRFとは?
    CSRF(Cross-Site Request Forgery)は、サイトユーザー(犠牲者)が自分の意思を顧みず、攻撃者の意図した行為(修正、削除、登録など)を特定サイトへの攻撃を要求し、ハッカー(攻撃者)がCSRFを通じてユーザーの権限を盗用し、思わぬ機能を実行させるものである.
    XSSを使用した攻撃がユーザに対してウェブサイトを信頼する場合、サイト間の要求偽造は、あるウェブサイトに対してユーザを信頼するブラウザの状態である.
    CSRF攻撃
    ユーザがウェブサイトにログインすると、サイト間に挿入された攻撃コードの偽造を要求するページが開き、攻撃されたウェブサイトは、偽造された攻撃コマンドが信頼できるユーザから発行されたと判断し、攻撃にさらされる.
    CSRF防御

  • Refer検査
    HTTPヘッダのRefer情報を確認して、要求が信頼できるページから来たかどうかを確認します.
    ただしrefer情報は操作可能です

  • Security Tokenの使用
    ログインしたプレイヤーにトークンをリリースし、リクエストを送信するとともに確認を送信します.

  • CAPTCHA
    特定の要求を処理するときは、CAPTCHA単語が要求とともに送信されていることを確認し、要求が必要なページで送信されていることを確認します.
  • XSSの脆弱性がある場合、CSRF攻撃に脆弱性が生じる可能性があります.
  • ソース
    https://medium.com/humanscape-tech/xss%EC%99%80-csrf-fe0e219b4c38
    https://gogomalibu.tistory.com/163
    https://lucete1230-cyberpolice.tistory.com/23