![見出し画像](https://assets.st-note.com/production/uploads/images/118586470/rectangle_large_type_2_918564f71ac66f92505298f42adc3a6e.png?width=1200)
【どの試験でも使える4問】Web入力攻撃5つで完全攻略
攻撃系の用語は、得点へ直結しくい学習コスパが悪い状況にあります。
なぜならITパスポートレベルでさえ、多数の攻撃手法がバラバラに出題され、なかなか得点につながりにくいから。
このNoteでは、「利用者が入力してWebページが変更される」Webサービス/Webアプリを悪用した攻撃についてまとめました。
4+1個を覚えることで、選択肢を1~2個絞ることができます。
攻撃系は以下3つで学習して
>>Webアプリを悪用した攻撃の対策Note<< ←このNote
最後に、>>ITパスポートの攻撃問題対策Note<< で問題演習をしてくださいね。
なお、このNoteは私が専門学校で教えてきた指導経験と970点合格をした実績に基づいていますので、ちょっとでも信用してくれたら嬉しいです。
\全てのNoteへのリンク集/
Web入力を悪用した攻撃4個+1個
まずは4個。
太字にした用語と手口(キーワード)で覚えてくださいね。
XSS(クロスサイトスクリプティング):Webサイトに悪意のあるスクリプトを埋め込んで、閲覧者の訪問時に実行させ偽サイトに誘導する
XSRF(CSRF, クロスサイトリクエストフォージェリ):Webサイトに悪意のあるスクリプトを埋め込んで、閲覧者が気づかないうちに別サイトで意図しない操作をする
SQLインジェクション:データベースを不正利用する
BoF(バッファオーバーフロー):想定外の長大な入力をしてバッファをあふれさせ、攻撃者の用意したプログラムを実行させるなど誤動作させる
ではさっそく過去問演習していきます。
SQLインジェクション攻撃の記述はどれか。
ア:Webアプリケーションに悪意のある問い合わせや操作を行う命令文を入力してデータベースからデータを不正に取得したり改ざんしたりする攻撃
イ:Webページに悪意のスクリプトを埋め込んでおき、訪問者が閲覧した時に実行させ、別のWebサイトで訪問者が意図しない操作を行わせる攻撃
ウ:訪問者の入力データをそのまま画面に表示するWebサイトにおいて、悪意のあるスクリプトを埋め込んだ入力データを送り、訪問者のブラウザで実行させる攻撃
エ:大量のデータをWebアプリケーションに送り、用意されたバッファ領域をあふれさせる攻撃
正答はア。「データベース」だけに反応すればOK。
イ:XSRF(CSRF, クロスサイトリクエストフォージェリ)
ウ:XSS(クロスサイトスクリプティング)
エ:BoF(バッファオーバーフロー)
一番迷うのは、XSSとXSRFですね。どちらも「Webページに悪意のあるスクリプト」を埋め込みますが、XSRFは「他サイトに操作」をする点で区別します。
XSSでよくある記述は「偽サイトに誘導してアカウント情報や個人情報を入力させる」旨。
悪意のあるスクリプト(JavaScriptなど)は利用者のWebブラウザで実行されるプログラムです。そこで、公式に似せた偽サイトに転送して、「ログインしてください」などでIDとパスワードを入力させて盗むなどができちゃいます。
クロスサイトスクリプティング(XSS)はどれか。
ア:Webアプリケーションのデータ操作言語(SQL)の呼び出し方に不備がある場合、攻撃者が悪意をもって構成した文字列を入力し、データベースからデータを不正取得・改ざん・削除を可能とする
イ:Webページに悪意のスクリプトを埋め込んでおき、訪問者が閲覧した時に実行させ、別のWebサイトで訪問者が意図しない操作を行わせる攻撃
ウ:確保されているメモリ空間の下限や上限を超えてデータの書き込みと読み出しを行うことで、プログラムを異常終了させたり、データエリアに攻撃者によって挿入された不正なコードを実行させたりする
エ:攻撃者が罠を仕掛けたWebページを利用者が閲覧したとき、Webサーバからのレスポンスに含まれる攻撃者によって埋め込まれた不正スクリプトが実行され、情報漏えいをもたらす
正答はエ。
ア:SQLインジェクション
イ:XSRF(CSRF, クロスサイトリクエストフォージェリ)
ウ:BoF(バッファオーバーフロー)
ここで気づいたかもですが、問題を2つ混ぜています。なかなか4個が揃った問題はありません。最近のITパスポートは1~2個混ざっている程度。
とはいえ、まとめた問題で基礎力をゲットして欲しいので作りました。
ディレクトリトラバーサル攻撃の手口はどれか。
ア:Webアプリケーションに用意された入力フィールドに、悪意のあるJavaScriptコードを含んだデータを入力する
イ:Webアプリケーションに悪意のある問い合わせや操作を行う命令文を入力してデータベースからデータを不正に取得したり改ざんしたりする攻撃
ウ:大量のデータをWebアプリケーションに送り、用意されたバッファ領域をあふれさせ、誤作動などを引き起こさせる
エ:パス名を推定し、本来は認証された後にしかアクセスされないページに直接ジャンプする
より改変
正答はエ。「いきなり知らん言葉が!」と思ったかもですが、消去法で迫れたのならOKです。
ア:XSS(クロスサイトスクリプティング)
イ:SQLインジェクション
ウ:BoF(バッファオーバーフロー)
では、最後の問題です。
ディレクトリトラバーサル攻撃を防ぐ方法はどれか。
ア:入力された文字が、データベースへの問い合わせや操作において、特別な意味を持つ文字として解釈されないようにする
イ:入力にHTMLタグが含まれていたら、HTMLタグとして解釈されない他の文字列に置き換える
ウ:入力にディレクトリの相対パスを指定する文字列が含まれている場合に、入力を受け付けず処理しない。
エ:入力全体の長さが、プログラムで想定された制限を超えているときに、受け付けない
正答はウ。
ア:SQLインジェクションへに対策。プレースホルダという仕組みを使い、サニタイジング(無害化)します
イ:XSS(クロスサイトスクリプティング)への対策。エスケープ処理と云います
エ:BoF(バッファオーバーフロー)への対策。入力チェックは長さや値の範囲などで行います
さて、新しく出てきたディレクトリトラバーサル攻撃を解説します。
webページの住所「URL」は、Webサーバ内でのファイルの場所を指しています。
そこで、「https://www.なんたら.com/IPA.html」を見ていたけど、「https://www.なんたら.com/fig/」に直接アクセスすると全て画像ファイルが見えるかもしれません。
このように、Webサーバ内のファイル・ディレクトリ構造を推測して、直接アクセスする攻撃が、ディレクトリトラバーサル攻撃です。
もしログインしてから、「https://www.なんたら.com/secret/index.html」にアクセスするようになっていた場合も、URLを推測して直接アクセスすれば、ログインしなくても見れることもあります。
なお攻撃用語は、3点セットをおさえるのが最終目標です。
攻撃名
攻撃の手口(キーワードで)
攻撃への対策
まとめ | 攻撃はジャンルごとに覚えて、バラバラに引き出せるまで頑張る
今回はWeb入力を悪用した5つの攻撃手法を学びました。
XSS(クロスサイトスクリプティング)
XSRF(CSRF, クロスサイトリクエストフォージェリ)
SQLインジェクション
BoF(バッファオーバーフロー)
ディレクトリトラバーサル攻撃
過去問を2問混ぜていたように、選択肢全て揃ってでることはない状況です。パスワードクラックやDoS攻撃も知っていく必要があります。
とはいえ、正解一発で引けることもありますし、消去法で1~2選択肢を消して2~3択に絞れます。正解確率が上がるのは変わりません。
>>Webアプリを悪用した攻撃の対策Note<<
>>パスワードクラック攻撃の対策Note<< ←次のNote
最後に、>>ITパスポートの攻撃問題対策Note<< で問題演習をしてくださいね。
\全てのNoteへのリンク集/
p.s. 普段は >> 専門学校とIT就職のブログ << をやってます。
でわでわ(・ω・▼)ノシ
この記事が参加している募集
学習方法・問題特集のNoteは全て無料提供を続けます▼ もしご覧になったNoteが有益だったり、私の志に共感されたりしましたら、サポート頂けますと励みになります▼ もちろんコメントでも結構です(・ω・▼)ノシ