1. 程式人生 > 其它 >Emit優化反射(屬性的設定與獲取)

Emit優化反射(屬性的設定與獲取)

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