9
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

シーエー・アドバンスAdvent Calendar 2023

Day 6

FlutterアプリでSQLインジェクションを試す

Last updated at Posted at 2023-12-05

はじめに

普段はWebアプリケーション脆弱性診断に関わる業務を行っています。
最近、Flutterアプリの脆弱性診断が増えてきているのでどのようなソースコードで脆弱性が入るのか体験してみました。
脆弱性を試すのが目的だったので、シンプルなアプリを作ってSQLインジェクションを入れてみました。
ここではSQLインジェクションを実装したところをメインに紹介します。

 動作確認環境

  • macOS Ventura 13.6.2
  • Flutter 3.13.3
  • Dart 3.1.1
  • sqflite 2.0.2

該当のソースコード

Androidアプリで、タイトル検索時のクエリでインジェクションできるようにしています。
※データストアはSQLiteを利用していて、sqflite経由でアクセスしています。

  static Future<List<Map<String, dynamic>>> searchNotes(String title) async {
    final db = await NoteViewModel.db();
    return db.rawQuery('SELECT * FROM items WHERE title LIKE "%${title}%"');
  }

こちらの例では検索時のパラメータをバリデーションやエスケープを実施せずに利用していて、SQLインジェクションすることが可能になっています。

おわりに

脆弱性の勉強がしたいという方の一助になれば幸いです。

参考URL

9
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?