PortSwigger, SQL injection UNION attacks.

memu.exe

Üye
24 Mar 2023
70
63
lol
Tekrardan selam dostlar mahlenizin dost canlısı, acemi hackerı geri döndü.
Eklemek isterim ki bazı kısımları anlatmayı beceremediğimden direkt PortSwigger üzerinden türkçeye çevirdim, çevirdiğim kısımları yıldız ile belirttim.
LAB - SQL injection UNION attack, finding a column containing text

Öncellikle UNION komutunun ne olduğunu biraz daha açıklamak istiyorum.

UNION komutu, iki veya daha fazla SELECT sorgusunu birleştirmek için kullanılır ve sonuçları tek bir sonuç kümesinde birleştirir.
Bu sayede, birkaç veri isteği yerine tek bir istek ile birden fazla veri alabilirsiniz.

Kısacası:
UNION komutu sayesinde birden fazla veriyi aynı anda request edebiliyoruz.
Bu sayede işlem kapasitesini azaltıyoruz ve birden çok veri isteğinde bulunabiliyoruz.
Bu sayede bir datadan bir veri almak yerine iki datadan 2 veri alıyoruz.

(Ancak, tabloların yapısal farklılıkları varsa, UNION komutu kullanmak zor olabilir. Bu durumda, her tablodan veri almak için ayrı ayrı sorgular kullanmak daha uygun olabilir.)
Bizden istenen: Make the database retrieve the string: 'yRZYjx' (Database'den 'yRZYjx' dizisini almamız.)
213c85d30e9308ed8cf80c55dfb0d0ec.jpg


Her hangi bir kategoriye tıklıyoruz
(ana sayfa da teorik olarak tüm herhangi bir veri ayırt etme işleminde bulunamadığı için ekstra veri request edemiyoruz.)

Bir sütundan bilgi isteyeceğimiz için önce sütun sayısı için SQL enjekte ediyoruz ediyoruz
(Nasıl Bulunduğunu bir önceki konum da anlatmıştım)
e4f725e83e25c862845f2281a74afe9f.jpg


Toplam 3 denemeden sonra 3 sütundan oluştuğunu görüyoruz.

Ardından isteğimizi değiştirip geri döndürmesini istediğimiz string veri tipindeki ifadeyi yazıyoruz.

0a789321deacc31955dc66c1577b704d.jpg


LAB - SOLVED
LAB - SQL injection UNION attack, retrieving data from other tables


UNION Saldırısı kullanarak veri alma

*Tablo filtresinde SQL enjeksiyonu açığı olan bir uygulamada,
orijinal sorgudan dönen sütun sayısını belirledikten ve hangi sütunların karakter verilerini tutabileceğini tespit ettikten sonra ilginç verileri almak için bir SQL enjeksiyonu UNION saldırısı kullanabilirsiniz.

Varsayalım ki:

Orijinal sorgu iki sütun döndürür ve her ikisi de karakter verilerini tutabilir.
Enjeksiyon noktası WHERE komutu içinde tırnak ile belirtilen bir karakter dizisidir.
Veritabanında kullanıcı adı ve şifre sütunlarına sahip bir kullanıcılar tablosu varsa.

Bu durumda, kullanıcılar tablosunun içeriğini aşağıdaki girişi göndererek alabilirsiniz:

' UNION SELECT username, password FROM users--

Tabloların ve sütunların isimlerini tahmin etmek zorunda kalmadan bu saldırıyı gerçekleştirmek için gereken önemli bilgi,
kullanıcılar tablosunun var olduğu ve kullanıcı adı ve şifre gibi iki sütuna sahip olduğudur.
Aslında, tüm modern veritabanları, veritabanı yapısını incelemek için tablo ve sütunlarını belirlemek için yöntemler sağlar.

Gelelim LAB'a;

Bizden istenen respond olarak 'users' bilgilerini almamız.

Rastgele bir kategoriye tıkladıktan sonra sütunlardan bilgi alacağımız için sütun sayısını keşfediyoruz
4b8a433e349aff305f813d1a371ab16c.jpg


Bir kaç denemeden sonra toplamda iki sütun olduğunu anladık.

Sorgumuzu değiştirerek users bilgilerini istiyoruz.

a74d5d0e04e5bc2ccfa3eaa0cd4f04a5.jpg

Administrator olarak oturum açtığımızda LAB'ı çözmüş oluyoruz.

LAB - SOLVED

Tek Bir Sütundan İki Veri Almak

Kısa bir örnek:

REQUEST

' UNION SELECT username || '~' || password FROM users--

RESPOND
...
bunuyazan~tosun
admin~1234
ayça_22~slmtnslmmı
...

Bizden istenen gene users bilgileri

Rastgele bir kategoriye tıkladıktan sonra sütunlardan bilgi alacağımız için sütun sayısını belirliyoruz
060213ef1d579d83fbfc6ececdf83713.jpg


Bir kaç denemeden sonra toplamda iki sütun olduğunu anladık.

Ardından isteği ' UNION SELECT NULL,username || '~' || password FROM users--
(NULL kullanmamızın sebebi ilk datadan hiç bir şey istemiyor olmamız)
olarak değiştiriyoruz

da0f428946baa3af8428625213ded5be.jpg


LAB - SOLVED


Okuduğunuz için saolun dostlar mahlenizin dost canlısı, acemi hackerı sevgiyle teşekkür eder ve gider.

yeni-uyeler-kulubu76d8b3792c188755.png
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.