エクスプロイト
エクスプロイトは、攻撃対象の場所によって「リモートエクスプロイト」と「ローカルエクスプロイト」に分類可能である。この分類は、securityfocusなどのセキュリティ団体や脆弱性情報データベースなどで用いられている脆弱性の分類と一致する。リモートエクスプロイトは、エクスプロイトコードの実行マシンと攻撃対象マシンが異なる場合を指し、ローカルエクスプロイトは、エクスプロイトコードの実行マシンと攻撃対象マシンが同一である場合を指す。例えば、リモート端末への一般ユーザ権限での不正アクセスを実現するエクスプロイトがリモートエクスプロイト、不正アクセス後にリモート端末へエクスプロイトコードを転送した後、リモート端末上で実行し管理者権限を不正に得るエクスプロイトがローカルエクスプロイトといった具合である。
エクスプロイトは、攻撃対象の種類によって「ソフトウェア」を対象としたものと「テキストコンテンツ」を対象としたものに分類可能である。旧来は前者、とりわけバイナリ形式のソフトウェアが主流であったが、CGIなどの動的にHTMLを生成する仕組みが使われ始めると、テキスト形式の言語が用いられることが多いCGIスクリプトがコードインジェクションの対象となった。バイナリ形式のソフトウェアに比べてマシン語の理解が不要なテキスト形式のソフトウェアは、攻撃する上で必要となる知識量が少なく、Webコンテンツの書き換えに重宝された。ネットショッピングなどSQLデータベースを用いたWebアプリケーションが登場すると、データベースへの不正アクセスのためにSQLインジェクションが用いられるようになった。