WAFのこと

5456 ワード

WAF(Web Application Firewall、Webアプリケーションファイアウォール)は、HTTP/HTTPSに対する一連のセキュリティポリシーを実行することによって、Webアプリケーションに保護を提供する製品です.
Webは基本的に以下のように分類できる.
ソフトウェア型WAF:
保護されたサーバ行のWAFにソフトウェア形式で実装され、サーバにインストールされているため、サーバ上のファイルに接触し、サーバ上にWebShellが存在するかどうか、ファイルが作成されているかどうかなどを直接検出することができる.
ハードウェア型WAFはハードウェア形式でリンクに配置され、多種の配置方式をサポートし、リンクに直列に接続した時に悪意のある流量を遮断することができ、バイパス傍受モードの時に攻撃だけを記録して遮断しない.
クラウドWAFは一般的にリバースエージェントとして動作し、NSレコードまたはCNAMEレコードを配置することで、ウェブサイトへのリクエストメッセージをWAFホストを優先的に通過させ、WAFホストフィルタリングを経た後、無害と思われるリクエストメッセージを実際のウェブサイトサーバに再送信してリクエストする、いわば防護機能付きCDNである.
サイトシステム内蔵のWAFサイトシステム内蔵のWAFは、サイトシステム内蔵のフィルタリングともいえる、直接コードに埋め込まれており、相対的に自由度が高い.一般的には以下のような状況があります.
1.          (intval )
2.         
3.      (SQL  、    、     ) ,              
4.                      (  /       )

ウェブサイトシステム内蔵WAFは業務とより合致しており、安全と業務を比較的に理解している場合、誤報や漏報をより少なく受け取ることができる.
WAF判定
SQLMapはSQLMAPに付属のWAF識別モジュールを用いてWAFの種類を識別できるが,実装されたWAFに特徴がなければSQLMAPはタイプがGenericであることしか認識できない.
sqlmap.py -u "url" --indentify-waf --batch

手動判断は、union select 1,2,3%23など、対応するウェブサイトのURLの後ろに最も基礎的なテスト文を直接付け、存在しないパラメータ名に配置します.ブロックされた表現は、ページがアクセスできない、応答コードが異なる、通常の要求ページに戻ったときとは異なる結果などである.
いくつかのWAFの迂回方法
大文字と小文字の混在は、ルールマッチング時に特定の大文字または特定の小文字のみを対象とし、実局では大文字と小文字を混在させることで迂回できます(現在はほとんどありません)
uNion sElEct 1,2,3,4,5

URLコードのごく一部のWAFでは通常文字のURL復号は行われません
置換キーワードWAFがselect/unionのような敏感なキーワードを置換または削除する場合、一度だけマッチングすれば簡単に通過する
ununionion selselectect 1,2,3,4,5

注釈注釈を使用するSQL文のトランケートに使用されることが多く、WAFを迂回する際に主にその代替スペース(/任意の内容/)を使用し、検出中に注釈や置換された注釈を認識していないWAFに適用されます.
union/*2333*/select/*5555*/1,2,3,4,5

内部注釈を使用してWAFの検出を迂回することもできます
マルチパラメータ要求分割複数のパラメータが同じSQL文に結合されている場合には、注入文を例えば要求URLを挿入する場合に、GETパラメータを以下の形式に分割することもできます.
a=[input1]&b=[input2]

GETのパラメータaとパラメータbをSQL文につづる
and a=[input1] and b=[input2]

注入文を分割できます
a=union/*&b=*/select 1,2,3,4

最終的にパラメータaとパラメータbをつなぎ合わせる
and a=union /*and b=*/select 1,2,3,4

HTTPパラメータ汚染HTTPパラメータ汚染とは、同一パラメータが複数回出現すると、異なるミドルウェアが異なる結果として解析されることを意味する.
ローカライズ関数は、一般的な関数の代わりにローカライズ関数を使用します.たとえば、エラー注入でpolygon()関数を使用して、一般的なupdatexml()関数を置換します.
ウェブサイトのソースを探してIPはクラウドWAFの防護を持つウェブサイトを迂回することにとって、ウェブサイトのIPアドレスを探し当てて、それからIPを使ってウェブサイトにアクセスして、WAFの検査を迂回することができます
       IP       
	           
	      ping  ,  IP     
	        、NS、MX     IP
	      ,        IP

cookiesにパラメータを注入する一部のプログラマーはコードの中でR E Q U E S Tを使ってパラメータを取得します.REQUEST取得パラメータ,児R EQUEST取得パラメータ,児_REQUESTはGET/POST/cookieから順次パラメータを取得し、WAFがGET/POSTのみを検出してcookieを検出しない場合は、注入文をcookieに入れて迂回することができる.