Upgrade to Pro — share decks privately, control downloads, hide ads and more …

20140714 SITCON Camp 揭開駭客的神祕面紗

20140714 SITCON Camp 揭開駭客的神祕面紗

2014-07-14 SITCON Camp 揭開駭客的神祕面紗

Allen Own

July 14, 2014
Tweet

More Decks by Allen Own

Other Decks in Technology

Transcript

  1. 揭開駭客的神祕面紗
    4*5$0/$BNQ
    翁浩正 Allen Own
    [email protected]
    Ꮦ˃੒ဧٰ΅Ϟࠢʮ̡

    View full-size slide

  2. ᑺ٫ᔊʧ
    ॽख͍ "MMFO0XO

    %&7$03&Ꮦ˃੒ဧٰ΅Ϟࠢʮ̡ੂБڗ
    BMMFOPXO!EFWDPSF
    !
    )*5$0/̨ᝄᎡ܄ϋึਓᐼ̜
    /*43"༟τྠඟ௴፬ɛ
    ༟τҦঐږ޷ᆤᘩᒄϋڿࠏeϋԭࠏ
    ༟τద᜗ၣ१ታ१ᚥਪ

    View full-size slide

  3. ٷ᧼㔃க൥፞)*5$0/9
    "%"15505)&/&8&3"0'4&$63*5:5)3&"54
    ˾
    _ ̄

    ٷ׸ޠΥḛ৮㑱ൽ㡴˒৴ἵ⃄㋒̙ቢῳ፞⁠୹㒔
    IUUQIJUDPOPSH

    View full-size slide

  4. νОϓމ੶٫k

    View full-size slide

  5. ኪࣧʔ݊Ϟ઺෗k
    މʡჿᒔࠅІʉрɢk

    View full-size slide

  6. ኪࣧ઺ԃ
    ଣሞeʫ̌


    ุޢ
    ྼਕeуࣛ኷ɢe؛̌

    View full-size slide

  7. ኪࣧ઺ԃ
    ଣሞeʫ̌

    ุޢ
    ྼਕeуࣛ኷ɢe؛̌

    View full-size slide


  8. ʕ
    ɽ

    ޼
    Ӻ
    ה


    View full-size slide


  9. ʕ
    ɽ

    ޼
    Ӻ
    ה


    為什麼?

    View full-size slide


  10. ʕ
    ɽ

    ޼
    Ӻ
    ה


    ????

    View full-size slide


  11. ʕ
    ɽ

    ޼
    Ӻ
    ה



    View full-size slide

  12. ੽ྼਕࠦ̈೯
    ᓘ՟ุޢeၣ༩ɪٙٝᗆ
    ໾ԑኪࣧίྼਕɪٙʔԑ

    View full-size slide

  13. ᜊ੶ٙږᝌjІ˴ኪ୦

    View full-size slide

  14. 老老師領領進門,修行行在個㆟人

    View full-size slide

  15. І˴ኪ୦
    ഛ͜ၣ༩ɪٙ઺ኪ༟๕
    ʔࠅ׊ᔊ᜗ʕ˖eߵ˖
    й፰ဲdਗ˓ਂఱ࿁əl
    ϓఱชܘࠠࠅl

    View full-size slide

  16. ʔࠅ׊̰઻
    ̰઻ٙɛdʑ݊ኪՑ௰εٙ

    View full-size slide

  17. ࡳԬٝᗆ݊Ңࡁ̀௪ٙճk

    View full-size slide

  18. ೻όႧԊ
    $$+BWB$
    ໔͉ႧԊ 4DSJQUJOH-BOHVBHF

    4IFMM4DSJQU+BWB4DSJQU1ZUIPO3VCZ1FSM
    ၣࠫᏐ͜೻όႧԊ
    "41/&51)1+413P3
    Бਗༀໄ೻όႧԊ
    "OESPJE +BWB
    J04 0CKFDUJWF$
    8JOEPXT
    1IPOF

    View full-size slide

  19. νО፯኿೻όႧԊk
    5*0#&1SPHSBNNJOH$PNNVOJUZ*OEFY
    IUUQXXXUJPCFDPNJOEFYQIQDPOUFOUQBQFSJOGPUQDJ
    JOEFYIUNM
    ੽રБᒈැ̙˸޶ՑႧԊٙᆠژ೻ܓ˸ʿุޢٙცӋ

    View full-size slide

  20. ڐಂ༟τࠅၲ

    View full-size slide

  21. ᒄژ᚛дj
    ̘ϋΌଢϞᄂഅࡈ༟̮ރ
    ᒄژ᚛д௰อ*453ၣ༩τΌ۾উజѓܸ̈d̘ϋ೯͛ٙ
    ༟τԫ΁ᜑͪdᎡ܄ҸᏘ੽Ҟ஺ҸᏘᔷމڗಂᆑͿٙɓ
    ϣ׌ɽ஝ᅼҸᏘdϋΌଢߒϞᄂഅ༟̮ࣘރf
    ί༈జѓ୕ࠇʕd̨ᝄίϋ዆᜗ၣ༩۾উʕΤΐΌ
    ଢୋdԭݲසϣ׵ʕ਷eΙܓf਷ʫϞٙ০࿁׌
    ҸᏘᕁ֛Ցɛ஝ᅼٙʕɽۨΆุdҭ೯ʿႡி
    ุމҸᏘᕁ֛ٙՇɽପุfϾ̘ϋ̨ᝄչѫඉ΁રΤ੽
    ୋΤɪʺЇୋdⶋ܉ၣ༩ɰરΤୋf
    IUUQXXXJUIPNFDPNUXOFXT

    View full-size slide

  22. F#BZቊල܄ɝڧ

    ᄂ͜˒༟̮ࣘރ
    F#BZ˚ί֜˙ၣ१ʮ̺dʦϋ˜ֵЇ˜ڋd
    ᄂ܄˒ٙཥඉήѧe̋੗ܝٙ੗ᇁë͛˚ಂʿИѧ
    ഃᅰኽ஗ೳ՟dШ஗ೳ՟ٙ˖΁Ѱʔўৌਕ༟ࣘfʮ
    ̡ڮሗᄂ͜˒һҷ੗ᇁf
    F#BZڌͪdմۃ೯ତவԬቊᎡٙਪᕚኯᗇdމə࿏ֵ
    ૶ݟਪᕚdה˸ٜՑ˚ʑʮ̺dШ൷ᕎ˜ڋቊල܄
    ɝڧࣛගʊ຾ڐࡈ˜f
    IUUQXXXCCDDPVL[IPOHXFOUSBEXPSME@FCBZ@IBDLFSTIUNM

    View full-size slide

  23. "0-վוӻ୕ቊɝڧd

    Ꭱ܄̙ঐπ՟ɽඎԴ͜٫੮໮
    "0-ᆽႩᎡ܄͊຾બᛆπ՟əўϞɽඎԴ͜٫੮໮ٙУ
    ؂ኜdܼ̍͜˒ٙཥɿඉ΁੮໮eήѧeஷৃ፽e̋
    ੗ٙ੗ᇁe̋੗ٙτΌஷᗫ੗Ⴇd˸ʿʈЪఊЗdϾ
    ˲"0-ɰ޴ڦչѫᔥʊ຾ෂ৔ൟᗺඉ΁ഗߒ͜˒ٙ
    ஷৃ፽ʾɛf
    IUUQXXXJUIPNFDPNUXOFXT

    View full-size slide

  24. ߕ਷ཧਯਠ*5ӻ୕௘Κዚ

    ৰə5BSHFUε࢕ཧਯਠɰቊݪ
    ௰ڐdԨʔස˟׵5BSHFUɓ࢕೯͛ࠠɽ༟̮ࣘރԫ΁f
    ࣬ኽ༩ீٟܸ̈dίື˚ᒅي֙ಂගdৰə5BSHFUၾ
    /FJNBO.BSDVTʘ̮ٙ஢εཧਯਠdɰቊՑᎡ܄ҸᏘf
    ɪ඄5BSHFUீᚣܸ̈dᎡ܄᛿՟ə΍ ຬഅٙᚥ܄
    ֑Τeඉ΁ήѧeཥ༑໮ᇁeཥɿඉ΁ήѧၾ˕˹̔
    ༟ࣘdШ̘ϋ˜ʕϚৎ΋జኬ፲̰ٙഅᅰމ ຬ
    അf
    IUUQOFXTOFUXPSLNBHB[JOFDPNUXDMBTTJGJDBUJPOTFDVSJUZ

    View full-size slide

  25. ӚϞʔτΌٙӻ୕

    ̥ϞʔτΌٙɛ

    View full-size slide

  26. A Nice Password, but….?
    Admin password
    Admin.R386W

    View full-size slide

  27. Is Your Password Safe?

    View full-size slide

  28. ΋ซซІʉϞӚϞਂՑτΌf
    ׉ໆӻ୕ʔτΌʘۃd

    View full-size slide

  29. ༟τ۾উၾᏐ࿁
    ԣጏ٫Ԩʔᆞ઄ҸᏘ٫ٙː࿒eͦٙeҦஔഃdኬߧ
    ԫ΁೯͛ܝʑঐආБࡌ໾fϾʔٝ༸ҸᏘٙҦஔၾ˙
    جdࡌ໾ɰසطᅺʔط͉
    ෂ୕ٙԣጏ˙όdܼ̍ӻ୕ࡌ໾eԣጏe̋੗dேΪ
    อҦஔɓɓ஗ॎ༆dԷνʱ౳όஈଣeථ၌e(16e
    3BJOCPX5BCMF

    View full-size slide

  30. ༟τ۾উၾᏐ࿁
    ٝʉٝ־dϵ኷ʔݫ
    ኪ୦Ꭱ܄ٙܠၪd௰อٙҦஔdԨ˲ə༆Іʉӻ୕ٙ
    ঌࢮᓃӺ௞ίОஈ

    View full-size slide

  31. Cyberwar݊ʡჿk

    View full-size slide

  32. http://www.flickr.com/photos/42514833@N07/5246970893/
    Cyberwar

    View full-size slide

  33. ၣ༩኷͍ίආБʕl

    View full-size slide

  34. Ŗϓၣ༩ගፒҸᏘ
    ԸІ਷࢕ॴዚ࿴೯ਗ
    ࣬ኽϋ7FSJ[PO௰อ೯̺ٙ༟̮ࣘރሜݟజ
    ѓܸ̈dίሜݟڐ΁ٙၣ༩ගፒҸᏘԫ΁ʕdϞ
    ݊ԸІ׵਷࢕ִ݁ॴዚ࿴ٙ೯ਗdՉʕऒʿ༟̮ࣘރٙҸ
    Ꮨݺਗۆ݊Цəfజѓɰܸ̈dϞਗ਼ڐɓ̒
    ٙ
    ၣ༩ගፒݺਗேԸІ׵ʕ਷ձՉ̴؇ԭ਷࢕ה˴ኬd̤̮
    ɰϞĈۆ݊ԸІ؇ᆄήਜ਷࢕f຅ʕһϞ൴ཀ̒ᅰ˸ɪ
    ٙၣ༩ගፒҸᏘ࿁൥݊˸ߕ਷މ˴dՉϣ݊˚͉
    ձᒵ

    f
    IUUQXXXJUIPNFDPNUXOFXT

    View full-size slide

  35. Ꭱ܄ᜣ့ཥൖ̨ვБ
    یᒵజኬj̏ᒵהމ
    یᒵɪ˜ቊᎡ܄ɝڧdε࢕ཥൖ̨ձვБΌࠦᜣ့d
    یᒵᙆ˙ɓܓ၈Ꭱ܄ҸᏘԸІʕ਷dܝҷɹ݊ߕ਷ʿ
    ᆄݲഃࡈ਷࢕dШʦ˂یᒵʮ̺͍όజѓdܸછ̏ᒵ
    ᆽމவৎҸᏘࣩٙ˴ፑdᘪ೥ࣛගڗ༺˜ʘɮf
    IUUQXXXBQQMFEBJMZDPNUXSFBMUJNFOFXTBSUJDMFJOUFSOBUJPOBM

    View full-size slide

  36. Ꭱ܄त၇௅ඟ
    ږ㛬Έˏ͜ɓ΅̏ᒵִ݁֜˙˖΁༟ܸࣘ̈d̏ᒵʊ
    ݂ჯኬɛږ͍˚ϋᒔፋІɨ˿ਗ਼ணί̻ᘎٙၣ༩
    त၇௅ඟᓒᇜЇ ɛdᒱ್༈΅˖΁ٙॆྼ׌͊຾
    ᆽႩdШږ㛬ΈኽϤౣ಻d̏ᒵᎡ܄ɛᅰʘܝʊɽష
    ᄣ̋dϞԬ݊ݼታʕ਷d˸ک੽ԫသீऎ̮ၣ༩ٙ΂
    ਕf
    IUUQOFXTDIJOBUJNFTDPNXPSMEIUNM

    View full-size slide

  37. Die Hard 4.0

    View full-size slide

  38. ၣ༩኷ٙͦٙ݊ʡჿk
    ᛿՟਷࢕ઋజ
    ᜣ့ၣ༩
    ਔ॰
    ܁౮ІҢଣׂ

    View full-size slide

  39. Ꭱ܄݊ʡჿk
    What is Hacker?

    View full-size slide

  40. http://www.flickr.com/photos/torh/5275187124/

    View full-size slide

  41. Ꭱ܄݊ʡჿ
    Ꭱ܄ )BDLFS
    ࡡจމ

    ˜ᆠহ׵ཥ໘ӻ୕Ҧஔ޼Ӻٙਖ਼࢕™
    ɽඎႬ͜ɨ˜Ꭱ܄™ɓ൚੭ϞࠋࠦЍ੹d੬މ
    ڢجెจॎᕸeɝڧӻ୕ٙɛ

    View full-size slide

  42. Ꭱ܄݊ʡჿ
    White Hat 白帽駭客
    ༟τਖ਼࢕d࿁ӻ୕τΌආБ޼ӺԨԣጏࡌ໾fεᅰ
    ੽ԫ༟ৃτΌ޴ᗫБุ
    Black Hat 黑帽駭客
    ආБ͕ໆٙɝڧБމdਖ਼̡ॎᕸd˸ۃ͵̙၈
    މ$SBDLFS

    View full-size slide

  43. Ꭱ܄݊ʡჿ
    (SFZ)BUϲసᎡ܄
    ʧ׵8IJUF)BUʿ#MBDL)BUʘග
    4DSJQU,JEEJF
    ҦஔʔॱᆞאʔᏑࡡଣd̥ึԴ͜ତϞҸᏘ೻
    όආБెจॎᕸٙҸᏘ٫d஗Ꮥ၈މ4DSJQU
    ,JEEJFdͦۃεᅰెจॎᕸ٫ޫ݊

    View full-size slide

  44. Ꭱ܄ଡ଼ᔌ
    ֜˙ᇜՓ
    ਷࢕
    ִ݁
    Άุ
    ڢ֜˙ᇜՓ€ήɨ

    View full-size slide

  45. Ꭱ܄ҸᏘٙͦᅺ
    ͦᅺjУ؂ኜࡈɛཥ໘
    ెจᎡ܄މə༺ՑݔԬͦٙdึҸᏘУ؂ኜא
    ࡈɛཥ໘fʔΝٙͦᅺึϞʔΝٙҸᏘ˓جd
    ɰึϞഹʔΝٙͦٙf

    View full-size slide

  46. ၣ१஗ɝڧٙܝ؈k
    Ꭱ܄Ցֵࠅٙ݊ʡჿk

    View full-size slide

  47. ၣ१஗ɝڧٙܝ؈k
    ᛿՟ၣ१ʫ௅༟ࣘ
    ਂމ༪ؐҸᏘՉ˼˴ዚ
    નᇁא׳ໄెจ೻ό
    ໄ౬ࠫࠦאॎᕸ
    ᛿՟१ʫ੮໮੗ᇁࡈ༟

    View full-size slide

  48. Ꭱ܄՟੻੮໮੗ᇁνОԴ͜
    ০࿁׌ٙೳ͜ݔ੮໮
    ՟੻၍ଣ٫ᛆࠢ
    ਗ਼੗ᇁᏦႡЪϓοՊᏦ

    View full-size slide

  49. ࡈɛཥ໘஗ɝڧٙܝ؈k
    Ꭱ܄Ցֵࠅٙ݊ʡჿk

    View full-size slide

  50. ࡈɛཥ໘஗ɝڧٙܝ؈k
    ᛿՟ཥ໘ʫ௅༟ࣘ
    ᛿՟ཥ໘ʫ੮໮੗ᇁࡈ༟
    ਂމ༪ؐҸᏘՉ˼˴ዚ

    View full-size slide

  51. 㔃கሯᇜḢပᚓ㢂

    View full-size slide

  52. ೸⁰ഥ
    ␶㉺
    ⁔ፇ
    ሟᇌ␹
    ༃༦⾬̳
    ⳽୷⭶ё ῳ̎ഇ₁༓༶⾽̿

    View full-size slide

  53. ೸⁰ഥ
    ␶㉺
    ⁔ፇ
    ሟᇌ␹
    ⳽୷⭶ё
    ᖤஞቒ̳
    ῳ̎ഇ₁༓༶⾽̿

    View full-size slide

  54. ሟᇌ␹
    ⳽୷⭶ё
    ⋣⃳
    ⳽ቛൻ
    #PUOFU
    %%P4ሯᇜ

    View full-size slide

  55. ሟᇌ␹
    ⳽୷⭶ё
    ⋣⃳
    ⳽ቛൻ
    #PUOFU
    %%P4ሯᇜ

    View full-size slide

  56. ሟᇌ␹
    ⳽୷⭶ё
    ⋣⃳
    ⳽ቛൻ
    ṬᄍӴξͥ፦࠵

    View full-size slide

  57. http://weblog.rubyonrails.org/2013/1/8/Rails-3-2-11-3-1-10-3-0-19-and-2-3-15-have-been-released/
    你更新了嗎?

    View full-size slide

  58. 你更新了嗎?

    View full-size slide

  59. ੬ԈτΌဍݸ࡚ؓ

    View full-size slide

  60. ၣ१༟ৃރဍ
    ၣ१፹Ⴌৃࢹ͊ᒯᔛ
    У؂ኜක೯٫و͉છ၍ࠫࠦ͊୅ৰ
    ၣࠫУ؂ኜක઼ͦ፽ΐڌ *OEFY0G

    ࠬᎈjഗʚᎡ܄ɝڧٙ༟ৃdܼ̍ӻ୕ৣໄeͦ፽dޟ
    Ї੮໮e੗ᇁഃ

    View full-size slide

  61. ⊷ਘῠ῵໊aіa⊷ਘῠ଀Ẁ஥ᇂ

    View full-size slide

  62. ↌ᅟℯⅴਫ਼῅

    View full-size slide

  63. B 網站
    密碼:1qaz2wsx
    C 網站
    密碼:1@#$%^%^*ag
    密碼:1qaz2wsx
    A 網站
    (遭⼊入侵)
    (⼊入侵)

    View full-size slide

  64. ၍ଣ٫͊းப΂
    ᒯਛʔజˏ೯һᘌࠠٙԫ࿒
    પ՝ப΂ೌج༆Ӕਪᕚ
    ಴๘ᗇኽਪᕚԱᔚπίdᎡ܄ஶჇІί

    View full-size slide

  65. ၣ१τΌᏨ಻νОྼЪ

    View full-size slide

  66. ၣ१τΌᏨ಻νОྼЪ
    ݟ༔У؂ኜeࢁ΁ٙو͉༟ৃ
    ᝈ࿀ၣ१ࠫࠦeʩ९eආɝᓃ
    ഗʚ͍੬ٙ፩ɝeମ੬ٙ፩ɝdᝈ࿀ၣ१ٙˀᏐʿৃ

    5SJBMBOE&SSPS

    View full-size slide

  67. ಻༊ʈՈ
    .BOUSBIUUQXXXHFUNBOUSBDPN
    #VSQ4VJUFIUUQQPSUTXJHHFSOFUCVSQ
    'JEEMFSIUUQGJEEMFSDPN

    View full-size slide

  68. τΌᏨ಻ʃҦ̷
    Ꮸ಻ၣ१݊щಀ஗Ꭱ
    IUUQXXXHPPHMFDPNTBGFCSPXTJOHEJBHOPTUJD TJUF
    IUUQ[POFIPSH
    IUUQXXXNBMXBSFEPNBJOMJTUDPNNEMQIQ
    IUUQXXXVSMWPJEDPN

    View full-size slide

  69. Ꭱ܄ٙܠၪ༧Ңࡁʔɓᅵ

    View full-size slide

  70. Injection?
    Path?
    Path?

    View full-size slide

  71. admin
    ‘ or 1=1 --
    admin

    abc123

    123456

    password
    3939889

    19831001

    A12345678
    87468c07c02e370ef84d4b7e3a668589
    Try to get the password
    WordPress Vulnerability?

    View full-size slide

  72. Ꭱ܄ҸᏘݴ೻
    3FDPOOBJTTBODF
    4DBOOJOH
    (BJOJOH"DDFTT
    .BJOUBJOJOH"DDFTT
    $MFBSJOH5SBDLT
    Reconnaissance
    Scanning
    Gaining

    Access
    Maintaining

    Access
    Clearing

    Tracks

    View full-size slide

  73. ॆྼҸᏘԫԷ
    Ꭱ܄຾͟ၣ१ҬՑɪෂeᄳᏦഃࢮᓃdಔɝXFCTIFMM
    ܝژஹɝ˴ዚf
    IUUQWJDUJNPSHTIFMMQIQ DNEPYPY
    ΢၇ၣࠫτΌਪᕚޫ̙л͜dܼ̍ᄳᏦeҷᏦeɪ
    ෂᏦࣩf

    View full-size slide

  74. ॆྼҸᏘԫԷ $POU

    ஹɝ˴ዚܝ೯ତ੮໮ᛆࠢʔԑd੽˴ዚʫరҬ̙ٙ͜
    ༟ৃf
    ᛆࠢjOPCPEZOPHSPVQ
    Ҭర̙͜੮໮FUDQBTTXE
    ݟ༔ӻ୕̙͜༟ৃWBSMPH
    ฤరϞೌTFUVJEGJMFT̙Զл͜

    View full-size slide

  75. ॆྼҸᏘԫԷ $POU

    ೯ତ˴ዚ,FSOFMو͉ཀᔚdϞ̙౤ᛆٙࢮᓃf
    ᅠᄳฤర&YQMPJUҸᏘd՟੻SPPUᛆࠢf
    IUUQXXXFYQMPJUECDPN
    (PPHMF
    #ZZPVSTFMG

    View full-size slide

  76. ॆྼҸᏘԫԷ $POU

    ׳ໄܝژ3PPULJU˸Զ˚ܝԴ͜f
    FUDQBTTXEܔͭ੮໮
    FUDSDE׳ໄܝژ
    ˾౬TTIEഃ

    View full-size slide

  77. ॆྼҸᏘԫԷ $POU

    ૶ৰԑ༦jা፽Ꮶʿӻ୕ߏ፽
    _IJTUPSZ
    _CBTI@IJTUPSZ
    WBSMPH

    View full-size slide

  78. ၣ༩݊τΌٙ෗k

    View full-size slide

  79. 8FMDPNFUPQIQ.Z"ENJO"/%

    $SFBUFOFXEBUBCBTFGJMFUZQFQIQ

    View full-size slide

  80. ༟τהცٙٝᗆߠ౻ၾҦঐ
    ༟ৃϗණ*OGPSNBUJPO(BUIFSJOH
    ӻ୕τΌ4ZTUFN4FDVSJUZ
    ၣ༩τΌ/FUXPSL4FDVSJUZ
    ၣ१ၾၣࠫᏐ͜೻ότΌ8FC4FDVSJUZ
    ̋੗ၾ༆੗$SZQUPHSBQIZ
    ెจ೻όᏨ಻.BMXBSF%FUFDUJPO
    ৕Σʈ೻3FWFSTJOH&OHJOFFSJOH
    ᅰЗᛠᗆ%JHJUBM'PSFOTJDT
    Бਗༀໄ.PCJMF%FWJDFT

    View full-size slide

  81. ІҢᇖ୦
    IUUQTXXXPXBTQPSHJOEFYQIQ$BUFHPSZ08"41@8FC(PBU@1SPKFDU
    IUUQTQFOUFTUFSMBCDPN
    IUUQXXXEWXBDPVL
    IUUQXXXIBDLUIJTTJUFPSH
    IUUQIBDLBEFNJDUFJMBSHS
    IUUQTIBDLNF
    IUUQ[FSPXFCBQQTFDVSJUZDPN
    IUUQTPVSDFGPSHFOFUQSPKFDUTNVUJMMJEBF

    View full-size slide

  82. ᑌഖ˙ό
    ߰Ϟ΂ОٙဲਪdᛇڎᎇࣛၾҢᑌᖩf
    "
    "
    ॽख͍"MMFO0XO
    IUUQEFWDPSF
    BMMFOPXO!EFWDPSF

    View full-size slide