Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
OWASP JUICE SHOPで始める脆弱性(診断)/ Learn vulnerabilit...
Search
elmore
May 09, 2018
Programming
1.8k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
OWASP JUICE SHOPで始める脆弱性(診断)/ Learn vulnerabilities at OWASP JUICE SHOP
第15回ゼロから始めるセキュリティ入門 勉強会
SPAなのに、SPAに関係ない話でごめんなさい。
elmore
May 09, 2018
More Decks by elmore
See All by elmore
Acunetix使ってみた/Try_used_Acunetix
elmore
0
90
Other Decks in Programming
See All in Programming
JPUG勉強会 OSSデータベースの内部構造を理解しよう(第2回)
oga5
0
290
速習iPhone Duo対応
yuukiw00w
2
930
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
410
手動確認はもう限界 〜XCUITestでCustom URL Schemeの遷移を起動種別ごとに自動テストする〜 / Testing Custom URL Schemes with XCUITest
otouto
0
370
Are APIs Still Relevant in the AI Era?
soyuka
0
400
市販E-Readerを乗っ取れ 〜Embedded Swiftで電子ペーパーガジェットを制御する〜
trickart
0
230
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
380
Ghostty + Neovimで作る 透明でカッコ良い開発環境
j341nono
0
150
そのリトライ、死んだコネクションを使い回していませんか ── GoのHTTPクライアントとHTTP/2を実プロダクト障害から学び直す
myus4a
0
370
Java 27新機能 / Java 27 new features
kishida
2
190
APNsからLive Activityを開始する話
yumnumm
0
140
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
1
330
Featured
See All Featured
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
780
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
600
How to train your dragon (web standard)
notwaldorf
97
6.8k
Agile that works and the tools we love
rasmusluckow
331
22k
What does AI have to do with Human Rights?
axbom
PRO
1
2.4k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
840
Six Lessons from altMBA
skipperchong
29
4.5k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
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
おわり