Emit優化反射(屬性的設定與獲取)
阿新 • • 發佈:2021-06-29
SSRF漏洞
SSRF(Server-Site Request Forery)服務端請求偽造
形成原因
服務端提供了從其他伺服器獲取資料的功能,但沒有對內網目標地址做過濾和限制。
容易出現的地方:將url請求作為引數請求資源時發生,分享、下載圖片、從別的伺服器請求資源等
主要利用方式
1.對外網、伺服器所在的內網進行埠掃描,獲取一些banner資訊
2.測試執行內網或本地的應用程式
3.利用file協議讀取本地檔案等
curl -v 'file:///etc/passwd'
4.用dict探測埠
curl -v 'dict://127.0.0.1:22'
5.用gopher反彈shell
相關危險函式
curl_exec()
function curl($url){ $ch = curl_init(); //curl_init()返回一個curl控制代碼 curl_setopt($ch, CURLOPT_URL, $url); //需要獲取的URL地址,也可以在curl_init()函式中設定。 curl_setopt($ch, CURLOPT_HEADER, 0); //啟用時會將標頭檔案的資訊作為資料流輸出。 curl_exec($ch); curl_close($ch); } $url = $_GET['url']; curl($url);
file_get_content()
if(isset($_GET['file']) && $_GET['file'] !=null){
$filename = $_GET['file'];
$str = file_get_contents($filename);
echo $str;
}
fsockopen()
這個函式會使用socket跟伺服器建立tcp連線,傳輸原始資料。
<?php $host=$_GET['url']; $fp = fsockopen("$host", 80, $errno, $errstr, 30); if (!$fp) { echo "$errstr ($errno)<br />\n"; } else { $out = "GET / HTTP/1.1\r\n"; $out .= "Host: $host\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); while (!feof($fp)) { echo fgets($fp, 128); } fclose($fp); } ?>
關於curl
curl 是常用的命令列工具,用來請求 Web 伺服器。它的名字就是客戶端(client)的 URL 工具的意思。
所支援的協議
正常請求
向伺服器發出get請求,返回伺服器內容
chenjiaze@kali:~$ curl www.baidu.com
-A 設定代理訪問
$ curl -A 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36' https://google.com
-b 設定cookie訪問
$ curl -b 'foo=bar' https://google.com
-c 將伺服器設定的cookie寫入一個檔案
$ curl -c cookies.txt https://www.google.com
-d 傳送POST請求
$ curl -d'login=emma&password=123'-X POST https://google.com/login
-e 設定Refer頭
curl -e 'https://google.com?q=example' https://www.example.com
-g 構造一個url的查詢字串
$ curl -G -d 'q=kitties' -d 'count=20' https://google.com/search
實際請求的 URL 為https://google.com/search?q=kitties&count=20
-v 輸出整個通訊過程,用於除錯
$ curl -v https://www.example.com
curl用法連線:https://www.ruanyifeng.com/blog/2019/09/curl-reference.html