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
Dockerを使って OSコマンドインジェクションが出来るSlack botを作った話 ...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
odanado
PRO
November 02, 2016
Programming
1
510
Dockerを使って OSコマンドインジェクションが出来るSlack botを作った話 / os-command-injection-bot
odanado
PRO
November 02, 2016
Tweet
Share
More Decks by odanado
See All by odanado
Vitest Browser Mode への期待 / Vitest Browser Mode
odanado
PRO
3
5.2k
@nestjs/bull の活用について
odanado
PRO
0
1.5k
クラウド KMS の活用 / TOKYO BLOCKCHAIN TECH MEETUP 2022
odanado
PRO
0
1.2k
Vue.observable で状態管理 / vue-observable-state-management
odanado
PRO
4
2.1k
nuxtjs-axios-error-handling
odanado
PRO
0
380
ブロックチェーンアプリのトランザクションに対するデータ分析 / PyCon-JP-2019
odanado
PRO
0
440
スマートコントラクトに対する既知の攻撃とその対策 / bc.tokyo-21
odanado
PRO
0
260
最近のweb3.js事情 / bc.tokyo-19
odanado
PRO
2
530
YAPC::Tokyo 2019に スタッフ参加してみて / kichijojipm-18
odanado
PRO
1
2.3k
Other Decks in Programming
See All in Programming
ThorVG Viewer In VS Code
nors
0
760
Kotlin Multiplatform Meetup - Compose Multiplatform 외부 의존성 아키텍처 설계부터 운영까지
wisemuji
0
190
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
200
LLM Observabilityによる 対話型音声AIアプリケーションの安定運用
gekko0114
2
420
OSSとなったswift-buildで Xcodeのビルドを差し替えられるため 自分でXcodeを直せる時代になっている ダイアモンド問題編
yimajo
3
610
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
6k
CSC307 Lecture 09
javiergs
PRO
1
830
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
190
SourceGeneratorのススメ
htkym
0
190
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.8k
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
190
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
960
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Ethics towards AI in product and experience design
skipperchong
2
190
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.3k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
110
A designer walks into a library…
pauljervisheath
210
24k
Are puppies a ranking factor?
jonoalderson
1
2.7k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
79
RailsConf 2023
tenderlove
30
1.3k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
110
WENDY [Excerpt]
tessaabrams
9
36k
Transcript
DockerΛͬͯ OSίϚϯυΠϯδΣΫγϣϯ͕ ग़དྷΔSlack botΛ࡞ͬͨ
1 DockerΛͬͯ OSίϚϯυΠϯδΣΫγϣϯ͕ ग़དྷΔSlack botΛ࡞ͬͨ
2 DockerΛͬͯ OSίϚϯυΠϯδΣΫγϣϯ͕ ग़དྷΔSlack botΛ࡞ͬͨ
Dockerͱ • ίϯςφܕԾԽΛߦ͏ιϑτΣΞ • 2013ʹొ • GoݴޠͰॻ͔Ε͍ͯΔ • ίϯςφͱԾOSͷ͜ͱ •
ҰͷϚγϯͰෳͷOS͕ಈ࡞͢Δ • Virtual BoxͳͲͷԾϚγϯͱগ͠ҧ͏ 3
Dockerͱ 4 ϕου ϕου ϕου τΠϨ ෩࿊ Ω ο ν
ϯ ҰݢՈ ཧϚγϯ ିϚϯγϣϯ ԾϚγϯ γΣΞϋε ίϯςφ *ࢀߟ: Docker࣮ઓ׆༻ ΨΠυ(ϚΠφϏग़൛)
Dockerͱ ίϯςφ ԾϚγϯ OSͷىಈ ͍ ͍ Ϧιʔεফඅ গͳ͍ ଟ͍ OSͷछྨ
LinuxͷΈ ͳΜͰ 5 ίϯςφ(Docker)ͱԾϚγϯ(Virtual Box)ͷൺֱ *ࢀߟ: Docker࣮ઓ׆༻ ΨΠυ(ϚΠφϏग़൛)
6 DockerΛͬͯ OSίϚϯυΠϯδΣΫγϣϯ͕ ग़དྷΔSlack botΛ࡞ͬͨ
7 DockerΛͬͯ OSίϚϯυΠϯδΣΫγϣϯ͕ ग़དྷΔSlack botΛ࡞ͬͨ
OSίϚϯυΠϯδΣΫγϣϯͱ • Ϣʔβ͔ΒͷೖྗΛड͚͚ΔWebαΠτͰ ϓϩάϥϜͷύϥϝʔλʹOSʹର͢Δ ίϚϯυΛฆΕͤͯ͞ෆਖ਼ૢ࡞͢Δ߈ܸ 8 ෆਖ਼ͳίϚϯυ ΫϥοΧʔ ੬ऑੑͷ͋Δ Webαʔό
ෆਖ਼ૢ࡞ ใ࿙Ӯ
OSίϚϯυΠϯδΣΫγϣϯͱ • ҙίϚϯυΛ࣮ߦ͞ΕΔͷॏେͳ੬ऑੑ • ύεϫʔυͷ࿙Ӯ • cat /etc/passwd • ൿີ伴ͷ࿙Ӯ
• cat ~/.ssh/id_rsa • αʔόͷσʔλશফ͠ • rm –rf / 9
10 DockerΛͬͯ OSίϚϯυΠϯδΣΫγϣϯ͕ ग़དྷΔSlack botΛ࡞ͬͨ
11 DockerΛͬͯ OSίϚϯυΠϯδΣΫγϣϯ͕ ग़དྷΔSlack botΛ࡞ͬͨ
Slack botͱ • Slackօ͞Μ͓ೃછΈͷνϟοτπʔϧ • botͱػցʹΑΔࣗಈൃݴγεςϜ • αʔϏε͔Βఏڙ͞Ε͍ͯΔAPIΛୟ͍ͯ࡞Δ • ࠓճPythonͷslackhq/python-rtmbotͱ͍͏
FrameworkΛͬͨ 12
Slack botͱ • ιʔείʔυ • https://github.com/odanado/slackbot-os- command-injection 13 OSίϚϯυΠϯδΣΫγϣϯ͕ ग़དྷΔSlack
botͷ͍Β͢ͱ
શମͷྲྀΕ 14 @͖Ͱ ίϚϯυૹ৴
σϞ • ͝ҰॹʹͲ͏ͧ • Կͯ͠େৎͰ͢ • ϋοΩϯά͠Α͏ʂʂ 15 ࣮ࡍʹOSίϚϯυΠϯδΣΫγϣϯΛ ߦ͍·͢
ࠓޙ • bashҎ֎ͷݴޠΛ࣮ߦͰ͖ΔΑ͏ʹͳΔ • Cݴޠ • Java • Python •
Ruby • PHP • DockerͷಛੑΛ׆͔ͯ͠෦αʔόΛ෦һ͕ ࣗ༝ʹ͑ΔΑ͏ʹ͠·͢ • ࡞ۀ͕Ε͍ͯͯ͏͠Β͕͔͔࣌ؒ͘Γ·͢ • ͝ΊΜͳ͍͞... 16
·ͱΊ • DockerίϯςφԾܕԽΛߦ͏πʔϧ • ߴʹىಈ͠ɼϦιʔεͷফඅྔ͕গͳ͍ • ͚ࣗͩͷڥ͕खʹೖΔ • OSίϚϯυΠϯδΣΫγϣϯॏେͳ੬ऑੑ •
ύεϫʔυͷ࿙Ӯσʔλվ᜵ͷةݥ • Slack botSlack্Ͱͷࣗಈൃݴπʔϧ • ࠓճPythonͷFrameworkΛͬͨ 17