Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SQL Injection
Search
kubo-hide-kun
January 27, 2021
Programming
0
93
SQL Injection
kubo-hide-kun
January 27, 2021
Tweet
Share
More Decks by kubo-hide-kun
See All by kubo-hide-kun
CA BASE NEXT でスクロールに 連動したUIを構築した話
kubo_programmer
1
480
ハイレベルな環境こそが最高である 科学的なお話
kubo_programmer
0
140
IPアドレスとは何か?
kubo_programmer
0
2.7k
クライアント/サーバーシステム
kubo_programmer
0
10k
DHCPサーバ
kubo_programmer
0
2.3k
How to make Readable Slide
kubo_programmer
0
88
AtomicDesignの説明と所感
kubo_programmer
0
1.7k
Moonblock入門
kubo_programmer
3
950
TCP/UDPの違い
kubo_programmer
4
4k
Other Decks in Programming
See All in Programming
推し活の ハイトラフィックに立ち向かう Railsとアーキテクチャ - Kaigi on Rails 2024
falcon8823
6
2.2k
LLM生成文章の精度評価自動化とプロンプトチューニングの効率化について
layerx
PRO
2
140
Boost Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
850
Dev ContainersとGitHub Codespacesの素敵な関係
ymd65536
1
130
レガシーな Android アプリのリアーキテクチャ戦略
oidy
1
170
飲食業界向けマルチプロダクトを実現させる開発体制とリアルな現状
hiroya0601
1
390
C#/.NETのこれまでのふりかえり
tomokusaba
1
160
Pinia Colada が実現するスマートな非同期処理
naokihaba
2
160
Kaigi on Rails 2024 - Rails APIモードのためのシンプルで効果的なCSRF対策 / kaigionrails-2024-csrf
corocn
5
3.4k
プロジェクト新規参入者のリードタイム短縮の観点から見る、品質の高いコードとアーキテクチャを保つメリット
d_endo
1
1k
EventSourcingの理想と現実
wenas
6
2.1k
カラム追加で増えるActiveRecordのメモリサイズ イメージできますか?
asayamakk
4
1.6k
Featured
See All Featured
Designing on Purpose - Digital PM Summit 2013
jponch
115
6.9k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
22k
Build The Right Thing And Hit Your Dates
maggiecrowley
32
2.4k
Building Your Own Lightsaber
phodgson
102
6k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.6k
BBQ
matthewcrist
85
9.3k
The Art of Programming - Codeland 2020
erikaheidi
51
13k
How to Ace a Technical Interview
jacobian
275
23k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
41
2.1k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
790
ReactJS: Keep Simple. Everything can be a component!
pedronauck
664
120k
Transcript
42-ΠϯδΣΫγϣϯ 2021.01.28 - クボ太郎
・SQL について ・SQLインジェクション is 何?
SQL について
データベースとは, テキストやデーアを保存するためのツール 3 σʔλϕʔε σʔλϕʔε ニンジン 文字 (例: 名前) 3
数値 (例: 個数)
JE OBNF QSJDF EBUF ΓΜ͝ δϟΨΠϞ
ۄͶ͗ χϯδϯ レコード ( 横 ) カラム ( 縦 ) データベースは,下の図のような表データを管理している. 表のことを「テーブル」,縦の列のことを「カラム」, 横の列のことを「レコード」と呼ぶ.
データベースに送る命令 = クエリ 3 σʔλϕʔε σʔλϕʔε クエリ データ データベース内の 〇〇というデータを下さい!!
・ SELECT文 ・ INSERT文 ・ UPDATE文 ・ DELETE文 ・・・ ・・・
・・・ ・・・ データを取得する命令 データを追加する命令 データを更新する命令 データを削除する命令 SQLでよく使われるクエリ
SQLインジェクション is 何?
SQLインジェクションとは, Webサイトの入力フォームなどに『SQLクエリを含む文字列』を入力することで, デーアベースを不正操作するサイバー攻撃の一種です. ID: PASSWORD: SQL文を含む文字列を 「ID」 や 「PASSWORD」 に入力
ログイン成功
攻撃事例: 前提条件として,以下のようなSQL文で画面から入力された 「ID」と「パスワード」がデータベースに存在するか確認し、 存在すればログイン成功、存在しなければログイン失敗と判断します。 SELECT id, pass FROM login_user WHERE
id=‘入力されたid’ AND pass=‘入力されたパスワード’; idとpassのデータを 取得する login_userという テーブルから idが ’入力されたid’ と passが ‘入力されたパスワード’ と 一致するもののみという条件
攻撃方法: 「ID」に以下の文字列を入力してログインするだけで不正ログイン可能です。 ※パスワードには何もいれなくて問題ないです。 1’ or ‘1’ = ‘1’; --
なぜ攻撃可能なのか? 「id」の条件が "1" または"1 = 1”という条件になので、結果は必ずtrueです。 そしてSQL文で「--」はコメントアウトを表します。 そのため,条件文「-- AND pass=‘';」はコメントとして扱われ無視されます。
SELECT id, pass FROM login_user WHERE id=‘1’or’1’=‘1’; --’ AND pass=‘ ’;
おしまい !!