安全領域各種資源,學習文檔,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各種好玩的項目及好用的工具,歡迎關注。
目錄
一、文件上傳繞過方式(Top 5)
二、文件包含高危函數(PHP為例)
三、金融行業邏輯漏洞(關鍵3類)
四、MySQL提權方式(2種核心)
五、Java Web框架(主流5種)
六、PHP命令執行函數(高危7個)
七、Linux日志清除關鍵點
八、域環境Windows加固方案
九、AES/DES工作步驟對比
十、RSA算法流程
一百六十一、常見的上傳繞過方式一百六十二、導致文件包含的函數一百六十三、金融行業常見邏輯漏洞一百六十四、mysql 兩種提權方式一百六十五、常用 WEB 開發 JAVA 框架一百六十六、php 中命令執行涉及到的函數一百六十七、入侵 Linux 服務器后需要清除哪些日志?一百六十八、如何加固一個域環境下的 Windows 桌面工作環境?請給出你的思路。一百六十九、AES/DES 的具體工作步驟一百七十、RSA 算法
一、文件上傳繞過方式(Top 5)
- 擴展名欺騙
- 雙擴展名(
.php.jpg
)、空字節截斷(shell.php%00.jpg
)、大小寫變異(.PhP
)- 防御對策:白名單校驗 + 內容類型檢測(
magic number
)- 內容類型篡改
- 修改HTTP頭
Content-Type: image/jpeg
(實際為惡意腳本)- 防御對策:服務端MIME檢測 + 文件頭校驗
- 解析漏洞利用
- Apache解析漏洞(
test.php.xxx
解析為PHP)、IIS目錄路徑解析(/upload/shell.jpg/xxx.php
)- 防御對策:更新中間件 + 禁用非常規解析規則
- 文件內容注入
- 圖片馬(將腳本注入圖片EXIF)、SVG的XXE攻擊
- 防御對策:文件內容掃描 + 禁用危險標簽(如SVG中的
<script>
)- 競爭條件攻擊
- 在臨時文件被刪除前執行(常見于異步檢測場景)
- 防御對策:同步處理 + 文件鎖定機制
二、文件包含高危函數(PHP為例)
markdown
1. **基礎包含函數** - `include()` / `include_once()`:包含失敗僅警告 - `require()` / `require_once()`:包含失敗致命錯誤 2. **封裝器利用** - `php://input`(執行POST數據)、`data://`(Base64代碼注入) - `zip://`(壓縮包內文件包含) 3. **過濾繞過技巧** - 路徑遍歷:`....//` 歸一化為 `../` - 空字節截斷(PHP<5.3):`/etc/passwd%00`
三、金融行業邏輯漏洞(關鍵3類)
漏洞類型 典型案例 防御方案 支付邏輯缺陷 金額篡改(前端驗證繞過) 服務端簽名校驗 + 金額鎖 薅羊毛漏洞 無限優惠券(未校驗唯一性) 分布式事務鎖 + 庫存原子性 賬戶安全缺陷 短信轟炸(無頻率限制) 滑動窗口限流 + 行為分析
四、MySQL提權方式(2種核心)
- UDF提權(User-Defined Function)
mermaid
graph LR A[上傳惡意so/dll] --> B[創建函數 sys_exec()] B --> C[調用函數執行系統命令]
- 條件:
secure_file_priv
為空 +FILE
權限- 啟動項提權(Windows)
- 寫入VBS腳本到啟動目錄:
sql
SELECT '惡意代碼' INTO OUTFILE 'C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\shell.vbs'
- 重啟后獲得SYSTEM權限
五、Java Web框架(主流5種)
- Spring Boot
- 優勢:自動配置 + Actuator監控
- 安全風險:未授權訪問
/actuator/env
- Apache Struts2
- 歷史漏洞:OGNL表達式注入(S2-045等)
- 防御:禁用動態方法調用(
struts.enable.DynamicMethodInvocation=false
)- Jakarta EE
- 核心組件:JSF + CDI + JPA
- 安全配置:
web.xml
中禁用目錄遍歷- Play Framework
- 異步架構 + RESTful原生支持
- 風險:CSRF保護需手動啟用
- Micronaut
- 編譯時依賴注入(零反射)
- 適用于Serverless安全場景
六、PHP命令執行函數(高危7個)
markdown
1. **直接執行類** `system()`, `exec()`, `passthru()`, `shell_exec()` 2. **代碼注入類** `eval()`(非命令但同等危險)、`assert()` 3. **反引號執行** `` `ls -al` `` (等價于shell_exec) 4. **特殊場景利用** `popen()` / `proc_open()`(管道交互)
七、Linux日志清除關鍵點
markdown
1. **主要日志路徑** - `/var/log/auth.log` (登錄記錄) - `/var/log/syslog`(系統事件) - `/var/log/apache2/access.log` (Web訪問) 2. **清除技巧** - 清空文件:`echo "" > auth.log` - 刪除自身記錄:`sed -i '/192.168.1.100/d' access.log` - 內存日志清除:`echo > /dev/kmsg`(需root) 3. **高級隱匿** - 禁用systemd-journald:`systemctl stop systemd-journald` - 刪除二進制日志:`journalctl --vacuum-size=0`
八、域環境Windows加固方案
mermaid
graph TB A[賬戶安全] --> A1[啟用LAPS(本地管理員密碼輪轉)] A --> A2[限制域管理員登錄工作站] B[組策略] --> B1[軟件限制策略(白名單)] B --> B2[禁用NTLMv1 + 強制SMB簽名] C[系統防護] --> C1[啟用BitLocker磁盤加密] C --> C2[配置Defender ASR規則] D[網絡隔離] --> D1[防火墻阻斷135-139/445端口] D --> D2[工作站間禁止SMB通信]
九、AES/DES工作步驟對比
步驟 AES(AES-256為例) DES(已淘汰) 1. 分塊 128-bit數據塊 64-bit數據塊 2. 密鑰擴展 256-bit密鑰→15輪子密鑰(Key Schedule) 56-bit密鑰→16輪48-bit子密鑰 3. 初始輪 AddRoundKey(密鑰加) 初始置換(IP) 4. 核心輪 重復10-14輪:
- SubBytes(S盒)
- ShiftRows(行移位)
- MixColumns(列混淆)
- AddRoundKey重復16輪:
- 擴展置換(32→48bit)
- S盒替換(48→32bit)
- P盒置換5. 最終輪 省略MixColumns 逆初始置換(IP?1)
十、RSA算法流程
markdown
1. **密鑰生成** - 選大素數 `p=61`, `q=53` - 計算模數 `n=p*q=3233` - 計算歐拉函數 `φ(n)=(p-1)(q-1)=3120` - 選公鑰 `e=17`(需滿足 `1<e<φ(n)` 且互質) - 計算私鑰 `d`:`d ≡ e?1 mod φ(n)` → `d=2753` 2. **加密過程** 明文 `M=65` → 密文 `C ≡ M? mod n = 651? mod 3233 = 2790` 3. **解密過程** 密文 `C=2790` → 明文 `M ≡ C? mod n = 27902??3 mod 3233 = 65` 4. **2025安全實踐** - 密鑰長度 ≥ 3072-bit - 必須使用OAEP填充模式 - 棄用PKCS#1 v1.5