2017.W36 - 了解你在寫的程式 Part II - 資安

Table of Contents

2017.W36 - 了解你在寫的程式 Part II
> 了解用的每一個函數 直到被發現有漏洞為止

## 前言 ##
最近心很累 尤其是發現大家對資安都不怎麼重視

衝功能的代價通常 半年之後會陸續需要擦屁股

只是最近看到屎的那個人是我 ...


## 內容 ##
cURL [0] 是一個常見的檔案傳輸工具 用來上傳、下載檔案

也提供額外的 C 函式庫 libcurl 讓第三方使用

目前支援了多種常見的網路協議 包含 HTTP、FTPS、SCP、Telnet、IMAP 等

當需要操作 cURL 做額外設定的時候 可以使用 curl_easy_setopt 函數





最近發現 常犯的幾個 libcurl 使用上的 '錯誤'

其一是 CURLOPT_SSL_VERIFYPEER [1] 設置為 0 表示不驗證 HTTPS

另一個則是 CURLOPT_PROTOCOLS [2] 跟 CURLOPT_REDIR_PROTOCOLS

預設的 libcurl 會支援所有可以支援的 Protocol

稍有不慎 (也就是開放讓使用者輸入完整 URI) 會開啟 File:// 等危險的本地協議

另一種 CURLOPT_REDIR_PROTOCOLS 沒有設定正確

就容易有 SSRF 等安全疑慮存在



[0]: https://curl.haxx.se
[1]: https://curl.haxx.se/libcurl/c/CURLOPT_SSL_VERIFYPEER.html
[2]: https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html


--

All Comments

Vanessa avatarVanessa2017-09-09
推一個QQ
Bennie avatarBennie2017-09-10
Steve avatarSteve2017-09-14
推個
Michael avatarMichael2017-09-19
0.0