?網絡安全領域各種資源,學習文檔,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各種好玩的項目及好用的工具,歡迎關注。
目錄
?奇安信安全工程師
1. MVC框架詳細說明
2. SQL注入詳細介紹
3. XSS和CSRF的區別
4. XXE漏洞原理
5. XXE涉及的關鍵函數
6. 文件上傳漏洞
7. 常見Web漏洞類型
8. Apache 7.0文件上傳黑名單繞過
9. 對稱加密與非對稱加密
10. MD5是否是非對稱加密?
11. Apache可以執行PHP文件嗎?
12. 反序列化漏洞原理
?
?奇安信安全工程師
1. MVC框架詳細說明
MVC(Model-View-Controller) 是一種分層設計模式,用于將應用程序的邏輯、數據和界面分離,提升代碼可維護性和擴展性。
- Model(模型):
- 職責:處理數據邏輯(如數據庫操作、數據驗證)。
- 示例:用戶數據存取、訂單狀態更新。
- View(視圖):
- 職責:展示數據(UI界面)。
- 示例:HTML頁面、JSON響應。
- Controller(控制器):
- 職責:接收用戶輸入,協調Model和View。
- 示例:處理HTTP請求、調用Model處理數據、返回View渲染結果。
交互流程:
- 用戶發起請求(如訪問URL)。
- Controller接收請求,調用Model處理數據。
- Model返回數據結果給Controller。
- Controller將數據傳遞給View渲染,最終返回給用戶。
實際應用框架:
- Spring MVC(Java):通過
@Controller
注解定義控制器。- Ruby on Rails:約定優于配置,自動路由映射。
2. SQL注入詳細介紹
原理:攻擊者通過構造惡意輸入,篡改原始SQL語句邏輯,實現非授權數據操作。
常見類型:
- 聯合查詢注入:
- 示例:
' UNION SELECT username, password FROM users--
- 利用:通過
UNION
合并查詢結果,泄露敏感數據。- 布爾盲注:
- 示例:
' AND (SELECT SUBSTRING(password,1,1) FROM users WHERE id=1)='a'--
- 利用:通過頁面返回狀態差異推斷數據內容。
- 報錯注入:
- 示例:
' AND updatexml(1,concat(0x7e,(SELECT version())),1)--
- 利用:觸發數據庫報錯并回顯敏感信息。
防御措施:
- 參數化查詢(核心方法):使用預編譯語句(如
PreparedStatement
)。- 輸入過濾:禁止特殊字符(如
'
、--
)。- 最小權限原則:數據庫賬戶僅授予必要權限。
3. XSS和CSRF的區別
特征 XSS(跨站腳本攻擊) CSRF(跨站請求偽造) 攻擊目標 用戶瀏覽器 用戶已登錄的Web應用 利用方式 注入惡意腳本到頁面 偽造用戶身份發起請求(如轉賬) 防御手段 輸入過濾、輸出編碼(如HTML實體轉義) CSRF Token校驗、SameSite Cookie屬性 典型案例 盜取Cookie、頁面劫持 自動提交表單、修改用戶設置
4. XXE漏洞原理
原理:利用XML解析器的外部實體(External Entity)功能,讀取本地文件、發起網絡請求或執行遠程代碼。
觸發條件:
- XML解析器未禁用外部實體(如PHP的
libxml_disable_entity_loader(false)
)。- 用戶可控的XML輸入(如上傳XML文件、API請求參數)。
攻擊示例:xml
<!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]> <data>&xxe;</data>
防御方案:
- 禁用外部實體解析:設置
LIBXML_NOENT
為禁用狀態。- 使用JSON替代XML:避免解析不可信數據。
5. XXE涉及的關鍵函數
- PHP:
simplexml_load_string()
:解析XML字符串。DOMDocument::loadXML()
:加載XML文檔。- Java:
DocumentBuilder.parse()
:解析XML輸入流。- 防御函數:
- PHP的
libxml_disable_entity_loader(true)
:禁用外部實體。
6. 文件上傳漏洞
原理:未對上傳文件類型、內容、路徑進行嚴格校驗,導致惡意文件(如Webshell)被執行。
常見繞過手段:
- 擴展名繞過:
- 修改后綴:
shell.php.jpg
→ 服務器僅檢查最后一個后綴。- 大小寫混淆:
shell.PhP
。- 文件內容繞過:
- 添加圖片頭(如
GIF89a
)偽裝為圖片。- 利用Apache解析漏洞:
shell.php.xxx
可能被解析為PHP。防御措施:
- 白名單校驗:僅允許特定擴展名(如
.jpg
、.png
)。- 文件內容檢測:檢查文件魔數(Magic Number)。
- 存儲隔離:上傳文件存放到非Web目錄。
7. 常見Web漏洞類型
- 注入漏洞:SQL注入、命令注入。
- 跨站腳本(XSS):存儲型、反射型。
- 跨站請求偽造(CSRF):偽造用戶操作。
- 文件上傳漏洞:上傳惡意文件。
- 不安全配置:默認密碼、目錄遍歷。
- 反序列化漏洞:執行惡意代碼。
- 邏輯漏洞:越權訪問、支付金額篡改。
8. Apache 7.0文件上傳黑名單繞過
繞過方法:
- 雙擴展名:
shell.php.jpg
→ Apache可能忽略.jpg
。- 特殊字符:
shell.php%00.jpg
(需PHP版本<5.3.4)。- .htaccess覆蓋:上傳
.htaccess
文件,定義解析規則(如AddType application/x-httpd-php .xxx
)。- 大小寫混淆:
shell.PHp
。防御建議:
- 禁用危險解析規則(如
php.conf
中限制擴展名)。- 使用
mime_content_type()
檢測真實文件類型。
9. 對稱加密與非對稱加密
類型 特點 常見算法 對稱加密 加密解密使用相同密鑰,速度快 AES、DES、3DES 非對稱加密 公鑰加密、私鑰解密,安全性高 RSA、ECC、DSA 應用場景:
- 對稱加密:大數據加密(如文件傳輸)。
- 非對稱加密:密鑰交換、數字簽名。
10. MD5是否是非對稱加密?
答案:否。
- MD5是哈希算法(Hash),用于生成固定長度摘要(如32位十六進制值),不可逆。
- 非對稱加密需滿足加密/解密雙向操作(如RSA)。
11. Apache可以執行PHP文件嗎?
答案:是。
- 配置方式:
- 安裝PHP模塊(如
mod_php
)。- 配置
httpd.conf
添加AddHandler application/x-httpd-php .php
。- 注意:錯誤配置(如允許上傳
.php
文件)可能導致代碼執行漏洞。
12. 反序列化漏洞原理
原理:將序列化數據還原為對象時,若未校驗數據來源,可能觸發惡意代碼執行。
觸發條件:
- 存在危險的反序列化函數(如PHP的
unserialize()
、Java的ObjectInputStream.readObject()
)。- 攻擊者可控序列化數據。
攻擊示例(PHP):php
// 惡意序列化數據 $data = 'O:8:"Example":1:{s:3:"cmd";s:10:"calc.exe";}'; unserialize($data); // 觸發__destruct()或__wakeup()方法執行系統命令
防御方案:
- 避免反序列化不可信數據。
- 使用安全反序列化庫(如Java的
SerialKiller
)。