SSRF(Server-Side Request Forgery:服務器端請求僞造) php
其造成的緣由大都是因爲服務端提供了從其餘服務器應用獲取數據的功能,但又沒有對目標地址作嚴格過濾與限制前端
致使攻擊者能夠傳入任意的地址來讓後端服務器對其發起請求,並返回對該目標地址請求的數據
數據流:攻擊者----->服務器---->目標地址
根據後臺使用的函數的不一樣,對應的影響和利用方法又有不同 後端
PHP中下面函數的使用不當會致使SSRF:瀏覽器
file_get_contents()服務器
fsockopen()cookie
curl_exec() curl
若是必定要經過後臺服務器遠程去對用戶指定("或者預埋在前端的請求")的地址進行資源請求,則請作好目標地址的過濾。 ide
1.提供了一個連接,點擊這個連接能夠返回一首詩,觀察 url 發現它傳遞了一個 url 給後臺函數
2.將url參數的值設爲https://www.baidu.com/,獲得返回頁面,可知已訪問了www.baidu.com的資源url
3.代碼分析
curl 模擬瀏覽器請求的,好比獲取獲取遠程的網頁,文件等,雖然可使用file_get_contents函數 可是 curl支持cookie 自定義瀏覽器類型,來源 ip等等。
1.這裏file_get_contents函數還有一個文件包含漏洞,利用php僞協議讀取文件的源碼,url賦值php://filter/read=convert.base64-encode/resource=http://127.0.0.1/pikachu/vul/ssrf/ssrf_info/info2.php讀取源碼
2.代碼分析
file_get_contents也能夠抓取遠程網頁內容,