ketyiaの学んだこと議事録

このサイトでは学んだことを記事にまとめていきます

ウェブ・セキュリティ基礎試験(徳丸試験)の勉強 ⑧SQLインジェクション

ウェブ・セキュリティ基礎試験(徳丸試験)の勉強 ⑧SQLインジェクション


こんばんわ!
世間では徳丸試験といわれている、ウェブ・セキュリティ基礎試験に挑戦しようということで、いつものごとくアウトプットで記事にまとめていきます。

今回は第八回目のSQLインジェクションについてまとめます。

SQLインジェクション


SQLインジェクションは、攻撃者がデータベースに対するSQLクエリを操作することで不正な操作を行う手法です。以下の影響が考えられます。

・データベース内の情報が外部から盗まれる

・データベース内の内容が書き換えられる

・認証回避

・ファイルの読み出し、書き出し、プログラムの実行

また、データベースエンジンによっては、SQLインジェクションの攻撃によって、以下の攻撃も可能になります。

・OSコマンドの実行

・HTTPリクエストにより他のサーバーを攻撃

データベース内の調査


データベースの表名と列名を調査するためには、information_schemaデータベースを使用します。

例えばすべてのテーブル名を表示する

SELECT TABLE_NAME 
FROM information_schema.TABLES 
WHERE TABLE_SCHEMA = 'データベース名';

対策


対策としては下記があります。

プレースホルダによりSQL文を組み立てる

リテラルを正しく構成し、SQLを変更されないようにする

・詳細なエラーメッセージの抑制

・入力値の妥当性検証

・データベースの権限設定

ここまでです。
読んでいただきありがとうございます