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
79
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
410
ハイレベルな環境こそが最高である 科学的なお話
kubo_programmer
0
130
IPアドレスとは何か?
kubo_programmer
0
2.3k
クライアント/サーバーシステム
kubo_programmer
0
7.6k
DHCPサーバ
kubo_programmer
0
2k
How to make Readable Slide
kubo_programmer
0
73
AtomicDesignの説明と所感
kubo_programmer
0
1.6k
Moonblock入門
kubo_programmer
3
810
TCP/UDPの違い
kubo_programmer
4
3.2k
Other Decks in Programming
See All in Programming
オブジェクト指向のリ・オリエンテーション~歴史を振り返り、AI時代に向きなおる~
hanyudaeiiti
9
5.6k
TYPO3 v13 – The road to LTS: What's new and new APIs
luisasofie_xoxo
0
180
単体テストを書かない技術 #phpcon_odawara
o0h
PRO
25
7.8k
Designing for tomorrow's programming workflows
honnibal
PRO
2
110
Netty Chicago Java User Group 2024-04-17
sullis
0
110
puregoの活用例
aethiopicuschan
0
220
ADRを一年運用してみた/adr_after_a_year
hanhan1978
7
2.2k
CircleCIを活用して AWSへの継続的デリバリーを 実践する
coconala_engineer
1
230
VSCodeでのDatabricks開発もお勧めしたい/I would also recommend Databricks development with VSCode.
kazumain
0
240
FigmaとPHPで作る1ミリたりとも表示崩れしない最強の帳票印刷ソリューション
ttskch
39
18k
GitHub Actionsで泣かないためにやっておきたい設定 / Recommended GHA settings to avoid crying
pinkumohikan
3
480
PHPの次期バージョンはこの時期どうなっているのか - Internalsの開発体制について - PHPカンファレンス小田原
youkidearitai
PRO
1
180
Featured
See All Featured
In The Pink: A Labor of Love
frogandcode
138
21k
Fireside Chat
paigeccino
20
2.6k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
15
1.4k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
6
990
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
119
38k
Building Your Own Lightsaber
phodgson
98
5.7k
Build your cross-platform service in a week with App Engine
jlugia
225
17k
Clear Off the Table
cherdarchuk
83
310k
GraphQLの誤解/rethinking-graphql
sonatard
50
9.2k
Music & Morning Musume
bryan
41
5.6k
Art, The Web, and Tiny UX
lynnandtonic
288
19k
Gamification - CAS2011
davidbonilla
76
4.6k
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=‘ ’;
おしまい !!