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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
kubo-hide-kun
January 27, 2021
Programming
0
110
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
560
ハイレベルな環境こそが最高である 科学的なお話
kubo_programmer
0
160
IPアドレスとは何か?
kubo_programmer
0
3.4k
クライアント/サーバーシステム
kubo_programmer
0
14k
DHCPサーバ
kubo_programmer
0
3.1k
How to make Readable Slide
kubo_programmer
0
130
AtomicDesignの説明と所感
kubo_programmer
0
1.9k
Moonblock入門
kubo_programmer
3
1.3k
TCP/UDPの違い
kubo_programmer
4
5.5k
Other Decks in Programming
See All in Programming
15年続くIoTサービスのSREエンジニアが挑む分散トレーシング導入
melonps
2
170
AIによる高速開発をどう制御するか? ガードレール設置で開発速度と品質を両立させたチームの事例
tonkotsuboy_com
6
1.8k
Vibe codingでおすすめの言語と開発手法
uyuki234
0
220
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
190
FOSDEM 2026: STUNMESH-go: Building P2P WireGuard Mesh Without Self-Hosted Infrastructure
tjjh89017
0
140
CSC307 Lecture 02
javiergs
PRO
1
770
OCaml 5でモダンな並列プログラミングを Enjoyしよう!
haochenx
0
120
Kotlin Multiplatform Meetup - Compose Multiplatform 외부 의존성 아키텍처 설계부터 운영까지
wisemuji
0
190
CSC307 Lecture 01
javiergs
PRO
0
680
なるべく楽してバックエンドに型をつけたい!(楽とは言ってない)
hibiki_cube
0
140
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
2
510
登壇資料を作る時に意識していること #登壇資料_findy
konifar
3
780
Featured
See All Featured
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
110
First, design no harm
axbom
PRO
2
1.1k
Designing for humans not robots
tammielis
254
26k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
110
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
160
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.9k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
440
Rails Girls Zürich Keynote
gr2m
96
14k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Producing Creativity
orderedlist
PRO
348
40k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
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=‘ ’;
おしまい !!