Register Now

Login

Lost Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Login

Register Now

Canyoupwn.me ~

TR | Quote of the Day Reloaded WriteUp – RingZer0

Selamlar.

SQL Injection kategorisinde bulunan UNION tabanlı bir soru.

1212112

Normal’de sorunun bir Input Validition alanı mevcut fakat biz Generate ettiğimiz vakit bize 1024 değerinde bir tane daha Input Validition oluşturuyor.

/38?q=1&s=1024

Bu q parametresin de SQL Injection tespitleri yapmaya çalıştım.
Burada '"')")) işaretlerini kullandım.
Fakat hiç bir şekilde bir hata tespiti alamadım. Aynı işlemi diğer s parametresi ile yaptım fakat bir sonuç alamadım.

Bu aklıma direk üç olay getirdi;
Birincisi; q parametresinde ki Input alanında bir güvenlik fonksiyonu mevcut. Örneğin htmlspecialchars().
İkincisi; q parametresinde ki Input alanı bir alanın içine yazıldı oradan çıkmamız gerekiyor. Örneğin (“$_GET[‘q’];”) veya “$_GET[‘q’]” gibi.

Üçüncüsü ise, HTTP Parameter Pollution.
Yani bir Input üzerinden değil, iki input‘da ki değeri tek hale alıp render etmesi.

Ama öncesinde bir tespit yapmamız gerekir. Bunun için ID‘ler ile bir kaç oynama yaptım.

2

Bu kesinlikle bir HTTP Parameter Pollution olma olasılığını gösterir diye düşünüyorum, çünkü ikinci Input değişme yok okey fakat neden oluşturuyor? Diğer parametre ile oynamalar yapalım.

3

0 değerinde bir şey bulamadığını söylüyor bu demektir ki, burada ki değer’den çıkış edip, diğer parametre ile birleştir.
İlk yaptığım tespit aşamalarını burada da yapacağım.

4

Bu aklıma direk şunu da getirdi.

SELECT icerik FROM icerikler WHERE q='htmlspecialchars($_GET['q'])' AND s='htmlspecialchars($s)'

Bu bir üst resimde ki hatayı tek tırnak işaret’in de veriyor bu demektir ki, biz HtmlSpecialChars‘ı atlatmamız gerekecek.
Tırnaklara engel koymasının sebebi girdiğimiz değerin arasına yazılmış olması bu da demektir ki, burada girilecek her değer String.
Bizim bu değer’den çıkış yapmamız gerekir ki, DB render edip bize sunsun. Bu sefer’de direk akla bir çok programlama dilinde mevcut olan kaçış dizisi \ akla geliyor.

5

 

Bir önceki resimler de gözüktüğü bize değer döndürmesi gerekirdi \ attıktan sonra görüyoruz ki, biz değer’den çıktık artık bizim vereceğimiz değeri giricek gibi.

6

 

Bize herşeyi sundu geriye flag’imizi çekmek kalıyor.
Order by kısmı geçiyorum, kolon sayımız 2. Debug false olduğu için bize Syntax hatası vermiyor. Blind gibi düşünebilirsiniz.
O sebeple direk UNION ile exploit kısmına geçiyorum.

7

8

 

Injection. 🙂

About CanYouPwnMe

Hero!

Follow Me