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
odanado
PRO
November 02, 2016
Programming
1
320
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
2
3.2k
@nestjs/bull の活用について
odanado
PRO
0
1.3k
クラウド KMS の活用 / TOKYO BLOCKCHAIN TECH MEETUP 2022
odanado
PRO
0
1k
Vue.observable で状態管理 / vue-observable-state-management
odanado
PRO
4
1.9k
nuxtjs-axios-error-handling
odanado
PRO
0
300
ブロックチェーンアプリのトランザクションに対するデータ分析 / PyCon-JP-2019
odanado
PRO
0
350
スマートコントラクトに対する既知の攻撃とその対策 / bc.tokyo-21
odanado
PRO
0
200
最近のweb3.js事情 / bc.tokyo-19
odanado
PRO
2
450
YAPC::Tokyo 2019に スタッフ参加してみて / kichijojipm-18
odanado
PRO
1
2.2k
Other Decks in Programming
See All in Programming
LLM Supervised Fine-tuningの理論と実践
datanalyticslabo
3
1.1k
Refactor your code - refactor yourself
xosofox
1
260
開発者とQAの越境で自動テストが増える開発プロセスを実現する
92thunder
1
180
KMP와 kotlinx.rpc로 서버와 클라이언트 동기화
kwakeuijin
0
140
rails stats で紐解く ANDPAD のイマを支える技術たち
andpad
1
290
[JAWS-UG横浜 #76] イケてるアップデートを宇宙いち早く紹介するよ!
maroon1st
0
460
20年もののレガシープロダクトに 0からPHPStanを入れるまで / phpcon2024
hirobe1999
0
410
採用事例の少ないSvelteを選んだ理由と それを正解にするためにやっていること
oekazuma
2
1k
バグを見つけた?それAppleに直してもらおう!
uetyo
0
180
テストケースの名前はどうつけるべきか?
orgachem
PRO
0
130
MCP with Cloudflare Workers
yusukebe
2
220
Fibonacci Function Gallery - Part 1
philipschwarz
PRO
0
210
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
Fireside Chat
paigeccino
34
3.1k
How to Ace a Technical Interview
jacobian
276
23k
For a Future-Friendly Web
brad_frost
175
9.4k
Done Done
chrislema
181
16k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
GitHub's CSS Performance
jonrohan
1030
460k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Unsuck your backbone
ammeep
669
57k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
Building Better People: How to give real-time feedback that sticks.
wjessup
365
19k
Writing Fast Ruby
sferik
628
61k
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