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
OWASP JUICE SHOPで始める脆弱性(診断)/ Learn vulnerabilit...
Search
elmore
May 09, 2018
Programming
1
1.7k
OWASP JUICE SHOPで始める脆弱性(診断)/ Learn vulnerabilities at OWASP JUICE SHOP
第15回ゼロから始めるセキュリティ入門 勉強会
SPAなのに、SPAに関係ない話でごめんなさい。
elmore
May 09, 2018
Tweet
Share
More Decks by elmore
See All by elmore
Acunetix使ってみた/Try_used_Acunetix
elmore
0
70
Other Decks in Programming
See All in Programming
エンジニアに事業やプロダクトを理解してもらうためにやってること
murabayashi
0
120
Kotlin 2.2が切り拓く: コンテキストパラメータで書く関数型DSLと新しい依存管理のかたち
knih
0
280
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
510
釣り地図SNSにおける有料機能の実装
nokonoko1203
0
200
Node-REDのノードの開発・活用事例とコミュニティとの関わり(Node-RED Con Nagoya 2025)
404background
0
110
CSC509 Lecture 07
javiergs
PRO
0
250
AI Agent 時代的開發者生存指南
eddie
4
2.3k
Researchlyの開発で参考にしたデザイン
adsholoko
0
110
Temporal Knowledge Graphで作る! 時間変化するナレッジを扱うAI Agentの世界
po3rin
5
1.2k
KoogではじめるAIエージェント開発
hiroaki404
1
300
Making Angular Apps Smarter with Generative AI: Local and Offline-capable
christianliebel
PRO
0
100
AI 駆動開発におけるコミュニティと AWS CDK の価値
konokenj
5
320
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
36
7k
Done Done
chrislema
186
16k
Typedesign – Prime Four
hannesfritz
42
2.9k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
650
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
658
61k
Leading Effective Engineering Teams in the AI Era
addyosmani
8
720
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.1k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
Writing Fast Ruby
sferik
630
62k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
192
56k
Rails Girls Zürich Keynote
gr2m
95
14k
For a Future-Friendly Web
brad_frost
180
10k
Transcript
OWASP JUICE SHOPで学ぶ 脆弱性(診断) えるもあ
お前だれよ なまえ : えるもあ しごと : よくわからない何か ねんれい : 26歳
ついったー : @elmore_mk2 2
今日はなすこと 3 脆弱性(Web) OWASP JUICE SHOP
1. 脆弱性(Web) コンピュータのOSやソフトウェアにおいて、プログラムの不具合や設計上のミスが原 因となって発生した情報セキュリティ上の欠陥のこと 出典:http://www.soumu.go.jp/main_sosiki/joho_tsusin/security/basic/risk/11.html 4
Webにはどんな脆弱性が潜んでいる? ◈ SQLインジェクション ◈ クロスサイトスクリプティング ◆ XSS ◈ クロスサイトリクエストフォージェリ ◆
CSRF 「IPAのウェブ健康診断仕様」には他に10項目記載されている 5
2. OWASP The Open Web Application Security Project Webセキュリティなどをよりセキュアにするために情報共有などをするコミュニティ 6
OWASPってなに? ◈ 世界規模 ◈ OWASP Top 10 ◈ Mobile、IoTのプロジェクトもある ◈
OWASP Japan、Kansai etc. 7
OWASP Top 10を見てみよう 8 出典:https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project
3. JUICE SHOP OWASP Projectの1つ OWASP Top 10をほぼ網羅した脆弱性のあるアプリケーション 9
OWASP JUICE SHOPを始めよう ◈ CTF形式やチャレンジ形式で脆弱性を学べ る ◈ SPA ◆ 既存のvictimアプリはサーバーレンダリン
グがほとんど ◈ インストールも簡単(Dockerなら3分未満) 10
OWASP JUICE SHOPの構成 11
SQLインジェクションを見つけよう ◈ そもそもSQLインジェクションって ◆ アプリが想定してないSQL文を発行させ る 12 For Example user_id
= "hoge" # ユーザからの入力値 sql = "select * from users where user_id = '" + user_id + "'" SPAなのにSQLインジェクションの話なのは許してヒヤシンス
SQLインジェクションを見つけよう 13
SQLインジェクションを見つけよう 14 商品検索できる ->DBからデータ 引っ張ってきて る??
SQLインジェクションを見つけよう 15 「apple'」で検索 ->構文が崩れるか 確認
SQLインジェクションを見つけよう 16 何も表示されな い。。。
SQLインジェクションを見つけよう 17 ◈ どんなHTTPレスポンスが返ってきたのか確 認したい ◆ ローカルプロキシを使おう! ◆ 今回はBurp Proxy
SQLインジェクションを見つけよう 18 ◈ 実際に見てみる
SQLインジェクションを見つけよう 19 なんかエラーとおいしそうな情報が "message": "SQLITE_ERROR: near \"'%'\": syntax error" "sql":
"SELECT * FROM Products WHERE ((name LIKE '%apple'%' OR description LIKE '%apple'%') AND deletedAt IS NULL) ORDER BY name" SQLインジェクションの脆弱性がありそう
SQLインジェクションを見つけよう 20 ◈ 文字列結合してみる 通常検索時と同じ結果に -> SQLインジェクション脆弱 性あり!
SQLインジェクションしてみよう 21 ◈ ちょっと悪いことを考える ◆ 他のテーブルからデータを取りたい ◆ 使ってるDBはSQLite ◇ SQLiteはsqlite_masterテーブルから
テーブル構造を取得してみる
SQLインジェクションしてみよう 22 HTTPレスポンスに取得データが返ってくるので、 UNIONでテーブル同士をくっつける sqlite_masterからデータの取得を試みる
SQLインジェクションしてみよう 23 juice')) union select NULL, sql,NULL,NULL, NULL,NULL,NULL,NULL from sqlite_master;
-- カラム数を合わせる必要があるので、NULLで調整 sqlite_masterからデータを取得する
SQLインジェクションしてみよう 24
SQLインジェクションをしてみよう 25 BasketItemsテーブルの構造が取れた ユーザー情報持ってそうなテーブルを探してみる juice')) union select NULL, sql,NULL,NULL, NULL,NULL,NULL,NULL
from sqlite_master LIMIT 1 OFFSET 10; -- OFFSETでとってくるデータを調整
SQLインジェクションをしてみよう 26 Usersテーブルの構造が取れた
SQLインジェクションをしてみよう 27 取れた構造をもとにユーザー一覧を取得
SQLインジェクションをしてみよう 28 ユーザのリスティングができた!
SQLインジェクションをしてみよう 29 ユーザのリスティングができた!
SQLインジェクションをしてみよう 30 パスワードはハッシュ化されているが、、、
SQLインジェクションをしてみよう 31 世の中には単純なハッシュ値を検索できるさいと があるので、、、
SQLインジェクションをしてみよう 32 取得できた情報をもとにログインしてみる
SQLインジェクションをしてみよう 33 ログインできた!!
SQLインジェクションをしてみよう 34 他人の認証情報を窃取できた!
注意 35 自身が管理しているもの、許可があるもの以外に はやってはいけないよ!!!
ほかのVictimアプリ ◈ OWASP WebGoat ◈ OWASP NodeGoat ◈ OWASP Broken
Web Application etc. 36
おわり