# [工商時間](https://hackmd.io/@R4NLb2wmTOGF6O81GCWTcw/By0i571xf#/) --- ## 留言問問題 ## 請先登入這個[網站](https://www.sli.do/) ## #V365 ![](https://i.imgur.com/Yuq5Kl2.png =35%x) --- # Web Security 0x2 --- # url.ezwu.me/0x2 ## 請大家分給大家 --- ## 開始新的東西前 ## 先來回顧一下[上一次](https://hackmd.io/@D0715704/B1ksczvLS#/5/1)上了什麼 ---- ## 網頁前後端 - 前端:HTML、CSS、JavaScripty - 後端:MySQL、Apache、nginx ---- # HTTP 相關 - 協定版本 - HTTP Method - HTTP Request、Response ---- ## 網頁開發者工具 ### F12、亂改網頁 ---- # [OWASP](https://www.owasp.org/index.php/Main_Page) --- ## 那我們今天要幹嘛呢 ### XSS? ### SQL_injection? ### LFI? ---- ## 其實也不是不行 ## 但我想讓大家玩個東西 --- ## 回到剛剛的 HTTP ### 你們現在知道他是在傳輸時的一種協定 ---- # 問題來了 ---- # 安全嗎? - [HTTP RFC](https://www.google.com/search?safe=off&sxsrf=ACYBGNQN0iAE1KXeZ57r0B6xEBFJUCXejw%3A1570958070683&ei=9uqiXcCvKZmLr7wPm6mJiAc&q=HTTP+rfc&oq=HTTP+rfc&gs_l=psy-ab.3..0i7i30l10.1041.4200..4505...0.2..0.257.1068.7j2j1......0....1..gws-wiz.......0i71j35i39j0i203j0j0i67j0i10i203j0i20i263.8SDc_4eYnkM&ved=0ahUKEwjAgoru8pjlAhWZxYsBHZtUAnEQ4dUDCAs&uact=5) ---- ## 不知道你有沒有注意過這個 ![](https://i.imgur.com/0V8ww0N.png) ![](https://i.imgur.com/3LRTiuo.png) ---- ## 那為什麼 HTTP 就不安全? ## 怎麼個不安全法? ---- ## 留著這些疑問,等一下告訴你 ![](https://i.imgur.com/v7I02Ck.jpg) --- ## 敏感資料 ---- ### 看到這四個字,你會想到啥? - 你的 D 槽 - 你瀏覽器中的某個資料夾 - 你抽屜裡的那個硬碟 - 還是你衣櫃裡的夾層 ---- ## 以上我們今天應該都不會看到 ## ~~還是你願意讓我看看?~~ ---- ## 但我這裡指的是以下的東西 - 遊戲帳號、密碼、信箱 - 甚至是你傳出去的訊息 ---- ## 說不定你今天上完可以知道旁邊人的帳密囉 --- # 中間人攻擊 ---- ## 故名思義,你就想作你在他跟別人聊天的時候 ## 有個人在偷聽你們的對話 ![](https://i.imgur.com/nvkI4QV.png =50%x) ---- ## 會造成什麼危害呢? - 機敏資料外洩 - 封包重送攻擊 ---- ## 具體上是怎麼做到的呢 ---- ## 首先讓我們了解一下 ### HTTP 的傳輸方式 ---- ## HTTP 的傳輸方式 ### 還記得上一節課的這張圖嗎? ![](https://i.imgur.com/eLCidsa.png) ---- ## 所以大致上的過程如下 ---- ## Client Requset ![](https://i.imgur.com/MmMxoFv.png) ---- ## Server Response ![](https://i.imgur.com/QQF9oGM.png) ---- ## 試想如果今天有個人要偷聽你們的對話 ## 他該怎麼切入你們的連線呢 ---- ## 相信五歲抬頭的各位應該都知道怎麼做吧 ---- ## 大致上如下圖 ![](https://i.imgur.com/VpDCDDG.png) --- # 攔截封包 ## 工具:Charles、Wireshark、Burp Suite ---- ## 什麼是封包 ---- ## 他是網路在通訊時,資料的基本單位 ## 裡面不外乎裝的就是你要通訊或傳送的訊息 ## 所以我們今天要攔的就是他 ---- # [Charles](https://www.charlesproxy.com/download/latest-release/) - MAC - Windows - Linux版<-(我還真沒用過) ---- ![](https://i.imgur.com/OF1bkEa.png) ---- ## Windows ![](https://i.imgur.com/aKjATAj.png) ---- ## MAC ![](https://i.imgur.com/Y9rhlvl.png) ---- ## 給大家一些時間去試看看囉~ ---- ![](https://i.imgur.com/xTOZ7j5.png =50%x) ---- ## HTTPS 的部分應該才是大家比較想看到的吧 --- ## 憑證 ### 用來確認資料來源的真偽所用 ---- ### 首先來知道 HTTP 和 HTTPS 的差別吧 ![](https://i.imgur.com/ev07LpV.png =75%x) ---- ## 從上述中我們發現HTTP有以下幾點問題 1. 只能用明文進行傳送,就算你加密,也有很大的風險會被解密 2. 你無法確定是否你的Request或Response是你指定的那個人給你的 ---- ### 所以才需要 HTTPS ### 那多出來的 S 代表了 SSL/TSL ---- ### 為了解決上述的情況發生 ### 所以我們來用「公私鑰加密」和「發行憑證」吧 ---- # 公私鑰加密 ---- ## 公鑰每個人都可以看到,但私鑰只有發行者有 ## 且公鑰加密過的內容,只有私要解得開 ---- # 所以我們達到第一步,要加密 ---- # 發放憑證 ---- ## 即使加密過了,為了確保正個過程沒有被冒用 ## 就會請第三方機構的加入,來跟雙方保證可信度 ## 而這個第三方通常稱為「數位憑證認證機構」(俗稱 CA ---- ## 簡單來說,我們在跟支援 HTTPS 的網站連線時 ## 你會把你的訊息跟憑證一起交給對方伺服器 ---- ## 然後這個網站就會藉由這個憑證來確認你是否值得信賴 ## 如果 OK 就會通過裡面的私鑰和公鑰加密與溝通 ---- ## 這樣懂了嗎? ---- ![](https://i.imgur.com/4r7UY1F.png) ---- ## 我還是用圖說明比較合適 ---- ![](https://i.imgur.com/SZoffjS.png) ---- ![](https://i.imgur.com/JX1Ffqn.png) ---- ![](https://i.imgur.com/kxXU6l4.png) ---- ![](https://i.imgur.com/kW6kU2k.png) ---- ![](https://i.imgur.com/VOw9jRQ.png) ---- ![](https://i.imgur.com/p16Tc5s.png) ---- ![](https://i.imgur.com/BZsePx4.png) ---- ![](https://i.imgur.com/5AlqJAe.png) ---- ![](https://i.imgur.com/3qG6ZYL.png) ---- ![](https://i.imgur.com/GxChYu9.png) ---- ## 聽完應該能理解吧 ---- ![](https://i.imgur.com/ol62cFl.png) ---- ## 我們還是來實際操看看吧 ---- # [Windows](https://hackmd.io/@a97j7l_EQ_qtgzwLxvnxig/ry7dOwZtB) # [MAC](https://hackmd.io/@a97j7l_EQ_qtgzwLxvnxig/SJJAdDWtB) --- # 最後你應該會問,可以攔手機的封包嗎? ---- ## iPhone 我行 ## Android (版本7.0以下會) ## 至於7.0以後請參考[這裏](https://medium.com/@elye.project/android-nougat-charlesing-ssl-network-efa0951e66de) ---- ## 這次以 iPhone 系統來示範 --- ## 點 WIFI 設定中的驚嘆號 ![](https://i.imgur.com/XUIytVQ.png =35%x) ---- ## 按進去設定代理 ![](https://i.imgur.com/KxXkPTp.png =35%x) ---- ## 然後這個伺服器要填的部分要注意 一下 ![](https://i.imgur.com/3grVulI.png =35%x) ---- ## 回到 Charles 點選 Help 的 Local IP Address ![](https://i.imgur.com/mB6OfB0.png =75%x) ---- ## 進去後參考這裏 ![](https://i.imgur.com/DokobGo.png =75%x) ---- ## 弄完以後用 safari 去到以下網址 ## `chls.pro/ssl` - Note:一定用safari,且要確認連上網路且你的Charles要開著喔 ---- ## 然後他會要你下載,就下載吧 ![](https://i.imgur.com/YTRFddM.png =35%x) ---- ## 之後到「設定」裡的「一般」 ![](https://i.imgur.com/aHf1cCW.png =32%x) ---- ## 拉到最下面應該要有個描述檔 ![](https://i.imgur.com/rAjg9kZ.png =35%x) ---- ## 然後你會看到他,點開 ![](https://i.imgur.com/05UIaaX.png =35%x) ---- ## 按下安裝 ![](https://i.imgur.com/lNclBk0.png =35%x) ---- # 安裝完後,你以為這樣就結束了嗎 ---- ## 回到一般的關於本機 ![](https://i.imgur.com/EtlqOEO.png =35%x) ---- ## 最下面有個憑證信任設定 ![](https://i.imgur.com/hf8QO3r.png =35%x) ---- ## 進去幫你剛下載的 Charles 按完整信任 ![](https://i.imgur.com/y3OJNCu.png =35%x) ---- ## 基本上,回到 Charles 看應該就會攔到了 ![](https://i.imgur.com/lyNFEkB.jpg =75%x) ---- ## 我知道你想問 Android 的怎麼用 ![](https://i.imgur.com/2xEt6TS.png) ![](https://i.imgur.com/ejMdTTR.png) --- ## 感謝辛苦大家今天來上課 ## 最後請幫我填個回饋表單再走 ![](https://i.imgur.com/o8gtKoB.jpg =50%x) ---- # 回饋表單 ![](https://i.imgur.com/bx2wqrD.png =50%x)
{"metaMigratedAt":"2023-06-15T00:43:14.789Z","metaMigratedFrom":"YAML","title":"Web Security 0x2","breaks":true,"image":"https://i.imgur.com/z83kHke.png","slideOptions":"{\"transition\":\"slide\"}","contributors":"[{\"id\":\"6bdee3ee-5fc4-43fa-ad83-3c0bc6f9f18a\",\"add\":7754,\"del\":2254}]"}
    1154 views