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
XSSについて説明します
Search
hirari123
March 18, 2021
Programming
0
67
XSSについて説明します
非エンジニアがXSS(クロスサイトスクリプティング)について調べてみて説明しました。
hirari123
March 18, 2021
Tweet
Share
Other Decks in Programming
See All in Programming
ARA Ansible for the teams
kksat
0
150
Java Webフレームワークの現状 / java web framework at burikaigi
kishida
9
2.2k
ファインディの テックブログ爆誕までの軌跡
starfish719
2
1.1k
Bedrock Agentsレスポンス解析によるAgentのOps
licux
3
850
Kubernetes History Inspector(KHI)を触ってみた
bells17
0
230
Writing documentation can be fun with plugin system
okuramasafumi
0
120
クリーンアーキテクチャから見る依存の向きの大切さ
shimabox
2
470
1年目の私に伝えたい!テストコードを怖がらなくなるためのヒント/Tips for not being afraid of test code
push_gawa
0
210
Domain-Driven Transformation
hschwentner
2
1.9k
CSS Linter による Baseline サポートの仕組み
ryo_manba
1
110
バックエンドのためのアプリ内課金入門 (サブスク編)
qnighy
8
1.8k
密集、ドキュメントのコロケーション with AWS Lambda
satoshi256kbyte
0
190
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.6k
Designing on Purpose - Digital PM Summit 2013
jponch
117
7.1k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3k
Git: the NoSQL Database
bkeepers
PRO
427
64k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.1k
A Philosophy of Restraint
colly
203
16k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
Rails Girls Zürich Keynote
gr2m
94
13k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
How GitHub (no longer) Works
holman
314
140k
Transcript
ฏɹଠ XSSʹ͍ͭͯઆ໌͠·͢ɻ
XSSͬͯԿͧ🤔 • XSS(ΫϩεαΠτεΫϦϓςΟϯά) ܝࣔ൘αΠτTwitterͷΑ͏ͳɺϢʔβʔ͔Βͷೖྗ༰ʹΑͬͯද͕ࣔಈతʹมΘΔ WebϖʔδWebΞϓϦέʔγϣϯʹ͓͍ͯɺWebαΠτʢඪతαΠτʣͷ੬ऑੑ ʢXSS੬ऑੑʣΛར༻ͨ͠߈ܸख๏Λࢦ͢ɻ
߈ܸͷྲྀΕ ᶄϢʔβʔ͕ܝࣔ൘αΠτBΛӾཡ͢Δɻ ᶃ߈ܸऀC͕XSSʹରͯ͠੬ऑੑͷ͋ΔAࣾΛൃݟ͠ɺAࣾʹ ڵຯΛ࣋ͪͦ͏ͳϢʔβʔͷ͍Δܝࣔ൘αΠτBʹ᠘Λֻ͚Δ (ྫɿεΫϦϓτ͖ϦϯΫΛషΔͳͲ) ᶅܝࣔ൘αΠτBͰεΫϦϓτ࣮ߦ ᶆϢʔβʔεΫϦϓτใΛ࣋ͬͨ··AࣾͷϖʔδʹҠಈ ʢΫϩεαΠτʣ͢Δɻ ᶇεΫϦϓτͷޮՌʹΑΓʮAࣾͷαΠτͱͯ͠ʯදࣔ͞Εͨ ِαΠτʹδϟϯϓ͢Δɻὃ͞ΕͨϢʔβʔ͕ใΛೖྗͨ͠
݁ՌɺεΫϦϓτ͕ѱ͞Λ͢Δ ᶈ߈ܸऀCͷखʹΑΓɺϢʔβʔʹର༷ͯ͠ʑͳඃ͕ൃੜ ʢϚϧΣΞײછɾ߈ܸऀCͷใ࿙ӮͳͲʣ ࣹܕXSS
߈ܸͷݪҼ XSSͷࠜຊతͳݪҼɺ߈ܸऀ͕ෆਖ਼ͳεΫϦϓτΛૠೖ͢Δ͜ ͱ͕Ͱ͖ΔڥΛ༩͑ͯ͠·͏͜ͱʹ͋Δɻ XSSʹରͯ͠੬ऑੑΛ࣋ͭಈతαΠτͷ์ஔͰ͋Δɻ ͜ͷεΫϦϓτจষʹɺΤϯυϢʔβʔଆ͕อ༗͢Δݸਓใ ΛඪతαΠτͱผͷαΠτʹૹ৴͢ΔΑ͏ʹઃఆ͞Ε͓ͯΓɺ ͜Ε͕తͳඃΛੜΈग़͢ݪҼͱͳ͍ͬͯΔɻ
߈ܸඃͷӨڹ XSSʹΑΔ߈ܸɺඪతαΠτͷΤϯυϢʔβʔ͕ඃΛड͚Δ͜ ͱͰൃੜ͢Δɻදతͳඃྫͱͯ͠ɺ •CookieใΛར༻ͨ͠ɺͳΓ͢·͠ͷෆਖ਼ΞΫηε (ηογϣϯϋΠδϟοΫ) •HTMLλάΛͬͨೖྗϑΥʔϜʹΑΔใऩू •ِαΠτΛͬͨϑΟογϯάٗ
ඃࣄྫ YouTubeෆਖ਼ΞΫηεࣄ݅ (2010/7/4ʙ7/5) ถYouTubeΛૂͬͨ߈ܸ͕ൃੜ͠ɺγϣοΫͳ σϚ͕ྲྀΕͨΓɺίϝϯτ͕දࣔ͞Εͳ͘ͳΔ ͳͲͷӨڹ͕͕ͬͨɻ χϡʔεใ!! ՎखͷδϟεςΟϯɾϏʔόʔ͕ ަ௨ࣄނͰࢮ
ඃࣄྫ ͜ͷ߈ܸͰYouTubeͷίϝϯτγεςϜʹଘࡏ͢ΔXSSͷ੬ऑੑ͕ ѱ༻͞Εͨɻ ۩ମతʹɺίϝϯτΞϓϦέʔγϣϯͷग़ྗσʔλͷ҉߸Խॲཧʹ ͕ଘࡏ͓ͯ͠Γɺ͜ΕΛಥ͍ͯ߈ܸऀ͕CookieΛ౪Έɺ JavaScriptίʔυΛࠐΜͰϢʔβʔͷWebϒϥβͰ࣮ߦ͞ΕΔ͜ ͱ͕Ͱ͖ͯ͠·ͬͨͱݟΒΕΔɻ ͦͷଞʹෆਖ਼ͳϙοϓΞοϓ͕ग़ͨΓɺѱझຯͳWEBαΠτʹϦμ ΠϨΫτ͞ΕͨΓ͢Δέʔε͕૬͍࣍Ͱ͍ͨͱݴΘΕ͍ͯΔɻ
WebαΠτͷ੬ऑੑͷछྨผͷಧग़ঢ়گ 2019ୈ4࢛ظ(10݄ʙ12݄)
߈ܸ͞Εͳ͍ͨΊͷରࡦ 1.ೖྗͷ੍ݶ ྫɿIDύεϫʔυΛೖྗ͢ΔϑΥʔϜͰʮ֯ӳࣈ◦จࣈ·Ͱʯ ͳͲ੍ݶ͢Δ αʔόʔଆͰͷೖྗͷ੍ݶΛ͢ΔͨΊʹJavaScriptΛͬͯϢʔβʔଆͷ ϒϥβͰߦΘͤΔํ๏͋Δ͕ɺϢʔβʔ͕JavaScriptΛແޮʹ͍ͯ͠Ε ೖྗͷ੍ݶ͕ߦΘΕͳ͍ͷͰXSS߈ܸͷରʹͳΒͳ͍ɻ
߈ܸ͞Εͳ͍ͨΊͷରࡦ 2.αχλΠδϯά(Τεέʔϓ) αΠτͷϑΥʔϜͳͲεΫϦϓτͷߏʹඞཁͱͳΔจࣈ͕ೖྗ͞Εͨ߹ʹɺ ͦͷจࣈΛผͷจࣈॻ͖͑ͯ͠·͏ख๏ͷ͜ͱɻ ͜ΕʹΑΓɺԾʹ߈ܸऀ͕εΫϦϓτΛຒΊࠐ͏ͱͯ͠ແޮԽ͢Δ͜ͱ͕Ͱ͖ Δɻ ରͷจࣈ ฦؐޙͷจࣈྻ < <
> > & & “ " ‘ #39; αχλΠδϯά͖͢จࣈڥʹΑͬͯҟͳΔ͕ɺ ӈͷද͕දతͳྫͰ͢ɻ
߈ܸ͞Εͳ͍ͨΊͷରࡦ 3.WAF(Web Application Firewall)ͷઃఆ WebΞϓϦέʔγϣϯઐ༻ͷϑΝΠΞΥʔϧͰ͋Δɻ ϑΝΠΞΥʔϧͱ͍͏ͱɺϙʔτ൪߸IPΞυϨεͳͲʹΑΓ߈ܸΛޚ͢Δ ωοτϫʔΫϨϕϧͷํ͕Α͘ΒΕ͍ͯΔɻ͕ͩɺܝࣔ൘ͳͲͰೖྗ͞Εͨ ༰·ͰνΣοΫ͠ͳ͍ɻͦ͜Ͱ͜ͷWAF͕ඞཁʹͳΔɻ WAFɺWebΞϓϦέʔγϣϯʹର͢Δ௨৴༰ΛνΣοΫ͠ɺٙΘ͍͠༰͕ ͋ΕϒϩοΫ͢Δ͜ͱ͕ՄೳͰ͋Δɻ
੬ऑੑΛѲ͓ͯ͜͠͏ • XSSͷ੬ऑੑɺ։ൃऀଆ͕ιʔείʔυΛ֬ೝ͢Δ͜ͱͰ੬ऑੑΛνΣοΫ͢Δ͜ ͱՄೳͰ͋Δɻ • ੬ऑੑΛ࡞Γࠐ·ͳ͍Α͏։ൃ͢ΔͨΊʹɺIPA(ಠཱߦ๏ਓɹใॲཧਪਐػߏ) ͕ެ։͍ͯ͠Δʮ҆શͳΣϒαΠτͷ࡞ΓํʯʮIPA ISEC ηΩϡΞɾϓϩάϥ ϛϯάߨ࠲ʯΛࢀߟʹ্ͨ͠ɺඞཁͳ҆શରࡦΛ࣮ࢪͯ͠ɺ։ൃΛҕୗ͢Δ߹ʹ
ࣗࣾͰ։ൃ͢Δ߹ͱಉ༷ʹ͜ΕΒͷରࡦΛ࣮ࢪ͢Δ͜ͱΦεεϝͰ͢ɻ
·ͱΊ • XSS͕ඇৗʹةݥͳαʔόʔ߈ܸͰ͋Δ͜ͱɺաڈͷେنͳෆਖ਼ΞΫηεࣄ͔݅ Β໌Β͔Ͱ͋Δɻ • ݸਓใͷऩूΛతͱͨ͠߈ܸऀʹΑΓ࣮ߦ͞ΕΔͱɺଟେͳΔඃΛٴ΅͢͜ͱ ʹͳͬͯ͠·͏ɻ • ࠜຊతͳରࡦઃܭ࣌ͷεΫϦϓτ͔Βݟ͢ඞཁ͕͋ΔͨΊʹඇৗʹ͍͠ͳ ͷͰɺαΠτͷ੍࡞ऀ͔ͬ͠ΓͱใΛௐ͔ࠪͯ͠Βͷ࡞͕ඞཁͰ͋Δɻ
• ϢʔβʔଆΤϯυϙΠϯτͷηΩϡϦςΟιϑτΛಋೖ͢ΔͳͲɺجຊతͳηΩϡ ϦςΟରࡦߦ͓ͬͯ͘͜ͱ͕ॏཁͰ͋Δɻ
ࢀߟʹͨ͠αΠτɾॻ੶ • αΠτ ɹCyber security.com ʮΫϩεαΠτεΫϦϓςΟϯάͱ?ʯΈࣄྫ͔Βߟ͑Δରࡦ • ॻ੶ ʰ҆શͳWebΞϓϦέʔγϣϯͷ࡞Γํʱ120ʙ149ϖʔδ
🙇͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠🙇