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
100
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
540
ハイレベルな環境こそが最高である 科学的なお話
kubo_programmer
0
160
IPアドレスとは何か?
kubo_programmer
0
3.1k
クライアント/サーバーシステム
kubo_programmer
0
13k
DHCPサーバ
kubo_programmer
0
2.7k
How to make Readable Slide
kubo_programmer
0
120
AtomicDesignの説明と所感
kubo_programmer
0
1.8k
Moonblock入門
kubo_programmer
3
1.1k
TCP/UDPの違い
kubo_programmer
4
4.9k
Other Decks in Programming
See All in Programming
エンジニア向け採用ピッチ資料
inusan
0
160
DroidKnights 2025 - 다양한 스크롤 뷰에서의 영상 재생
gaeun5744
3
320
0626 Findy Product Manager LT Night_高田スライド_speaker deck用
mana_takada
0
110
Haskell でアルゴリズムを抽象化する / 関数型言語で競技プログラミング
naoya
17
4.9k
Team topologies and the microservice architecture: a synergistic relationship
cer
PRO
0
1.1k
Julia という言語について (FP in Julia « SIDE: F ») for 関数型まつり2025
antimon2
3
980
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
250
XSLTで作るBrainfuck処理系
makki_d
0
210
LINEヤフー データグループ紹介
lycorp_recruit_jp
0
890
High-Level Programming Languages in AI Era -Human Thought and Mind-
hayat01sh1da
PRO
0
330
アンドパッドの Go 勉強会「 gopher 会」とその内容の紹介
andpad
0
260
たった 1 枚の PHP ファイルで実装する MCP サーバ / MCP Server with Vanilla PHP
okashoi
1
190
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.3k
Into the Great Unknown - MozCon
thekraken
39
1.9k
Rebuilding a faster, lazier Slack
samanthasiow
82
9.1k
Visualization
eitanlees
146
16k
Agile that works and the tools we love
rasmusluckow
329
21k
Why You Should Never Use an ORM
jnunemaker
PRO
57
9.4k
A Modern Web Designer's Workflow
chriscoyier
694
190k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Code Review Best Practice
trishagee
68
18k
The Pragmatic Product Professional
lauravandoore
35
6.7k
Making Projects Easy
brettharned
116
6.3k
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=‘ ’;
おしまい !!