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
November 02, 2016
Programming
670
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Dockerを使って OSコマンドインジェクションが出来るSlack botを作った話 / os-command-injection-bot
odanado
November 02, 2016
More Decks by odanado
See All by odanado
Vitest Browser Mode への期待 / Vitest Browser Mode
odanado
3
5.6k
@nestjs/bull の活用について
odanado
0
1.6k
クラウド KMS の活用 / TOKYO BLOCKCHAIN TECH MEETUP 2022
odanado
0
1.3k
Vue.observable で状態管理 / vue-observable-state-management
odanado
4
2.1k
nuxtjs-axios-error-handling
odanado
0
410
ブロックチェーンアプリのトランザクションに対するデータ分析 / PyCon-JP-2019
odanado
0
460
スマートコントラクトに対する既知の攻撃とその対策 / bc.tokyo-21
odanado
0
290
最近のweb3.js事情 / bc.tokyo-19
odanado
2
570
YAPC::Tokyo 2019に スタッフ参加してみて / kichijojipm-18
odanado
1
2.4k
Other Decks in Programming
See All in Programming
わからない話を追いかけたら、プログラミング言語を作る側にいた
ydah
3
510
Google Apps Script で Ruby を動かす
kawahara
0
240
20260722_microCMSで考える、AI時代のコンテンツ運用設計
yosh1
0
410
yield再入門 #phpcon
o0h
PRO
0
1.1k
S3 を使うアプリケーションをローカル完結で動かすことに全力を注いでみた / Running S3 Apps Offline
contour_gara
0
490
琵琶湖の水は止められてもNet--HTTPのリトライは止められない / You might be able to stop the water flow of Lake Biwa but you can't stop Net::HTTP retries
luccafort
PRO
0
730
AIが無かった頃の素敵な出会いの話
codmoninc
1
430
Claude CodeとAgentCore Gatewayを繋ぐ際の認証認可 / Authentication and authorization when connecting Claude Code with AgentCore Gateway
har1101
2
280
PostgreSQL 18で考えるUUID主キー
kazuhiro1982
0
470
AI時代のPHPer生存戦略 ~「言語、もうなんでもよくない?」に本気で向き合う~
vivion
0
510
Android CLI
fornewid
0
220
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
660
Featured
See All Featured
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
280
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
64
56k
Odyssey Design
rkendrick25
PRO
2
760
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Writing Fast Ruby
sferik
630
63k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
What does AI have to do with Human Rights?
axbom
PRO
1
2.3k
KATA
mclloyd
PRO
35
15k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
610
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
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