Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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.8k
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
AIコーディングエージェント(Gemini)
kondai24
0
240
GISエンジニアから見たLINKSデータ
nokonoko1203
0
170
Findy AI+の開発、運用におけるMCP活用事例
starfish719
0
1.3k
re:Invent 2025 のイケてるサービスを紹介する
maroon1st
0
130
これならできる!個人開発のすゝめ
tinykitten
PRO
0
120
WebRTC と Rust と8K 60fps
tnoho
2
2k
複数人でのCLI/Infrastructure as Codeの暮らしを良くする
shmokmt
5
2.3k
AIエージェントを活かすPM術 AI駆動開発の現場から
gyuta
0
440
TestingOsaka6_Ozono
o3
0
170
まだ間に合う!Claude Code元年をふりかえる
nogu66
5
850
tsgolintはいかにしてtypescript-goの非公開APIを呼び出しているのか
syumai
7
2.3k
Developing static sites with Ruby
okuramasafumi
0
310
Featured
See All Featured
How Software Deployment tools have changed in the past 20 years
geshan
0
29k
HDC tutorial
michielstock
0
260
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
The browser strikes back
jonoalderson
0
59
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
45
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
60
37k
The Curious Case for Waylosing
cassininazir
0
190
How STYLIGHT went responsive
nonsquared
100
6k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.2k
Making Projects Easy
brettharned
120
6.5k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
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
おわり