> 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-vulnerability-allowing-login-bypass-cozumu.md).

# SQL injection vulnerability allowing login bypass Çö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ş:

Login(giriş) sayfasında sql injection var. Login sayfasını atlat(bypass). `administrator` kullanıcısı olarak giriş yap

***

Labı başlatınca site aşağıdaki gibi:

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

“My account” üzerine tıklayıp gelen login sayfasına gidelim:

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

Lab'ın başında anlattıklarına dayanarak arkada şuna benzer bir sorgu çalıştığını tahmin edebiliriz:

`SELECT * FROM users WHERE username='girilen_username' AND password='girilen_password'`

username parametresine `administrator'--` girerek, kullanıcı adını administrator yapıp, geri kalanını da yorum satırına alabiliriz. Bu lab'da bizden password kısmını boş bırakmamamızı istiyor. Rastgele bir şey yazabiliriz, sorgunun ilk kısmında girilen\_password kısmını yorum satırına alacağımız için bir önemi yok.

Böylece şöyle bir sorgu gider oluşur:

`SELECT * FROM users WHERE username='administrator'-- AND password='girilen_password'`

ve veritabanı yorum satırı sonrasını silip şu sorguyu çalıştırır:

`SELECT * FROM users WHERE username='administrator'`

bu sorgu da veritabanındaki users tablosundaki username'i administrator olan kullanıcıyı SELECT eder ve giriş yapmamızı sağlar.

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