Merhaba, ben Teknofest 2024 Pardus Hata Yakalama ve Öneri Yarışması finalistlerinden Eyyüb. Bu yazıda yarışma serüvenimi, bulduğum hataları ve yarışmanın bana kazandırdıklarını anlatacağım.
Yarışmaya Başvuru Sürecim
Okulumda gördüğüm bir poster sayesinde bu yarışmadan haberdar oldum. Daha önce hiç Pardus kullanmamış olsam da Linux ve siber güvenlik alanlarına ilgim vardı. Yarışmanın hata yakalama ve öneri geliştirme üzerine olduğunu öğrenince, “Neden olmasın?” dedim ve katılmaya karar verdim.
Hata Araştırması ve Tespiti
İlk olarak Pardus ekibinin geliştirdiği Liderahenk sistemini kurdum ve hata aramaya başladım. Ana alanımın siber güvenlik olmasına rağmen Liderahenk üzerinde pek bir şey bulamadım. Sadece birkaç API hatası ve öneriyle Liderahenk’i bıraktım. Moralim biraz bozulsa da başka uygulamalara geçmeye karar verdim.
Ardından Pardus’un gömülü uygulamalarını incelemeye başladım. Pardus Yazılım Merkezi’nin kaynak kodunu kendi bilgisayarıma indirdim ve kodu okumaya başladım. Kodu incelerken uygulamalara puan vermemizi sağlayan API uzantısını gördüm.
Hemen bu dosyalar içerisinde bu değişkenin geçtiği yerleri aramaya başladım, çünkü her bir API isteği potansiyel bir tehlike oluşturabilirdi. Değişkenin kullanıldığı bir kod parçası buldum. Bu kod parçası, uygulama içerisinde diğer uygulamalara puan vermemizi sağlıyordu.
Uygulama tarafında verdiğimiz değerlerin kontrol edilmediğini fark ettim. Bunun üzerine hemen bir Python kodu yazdım ve gönderilecek değerler kısmına kendi belirlediğim rastgele değerleri ekledim. İstek sunucu tarafından kabul edilmişti. Bu durum aklıma şu soruyu getirdi: “Eğer istediğim değerleri verebiliyorsam, bir uygulamanın puanını düşürebilir miyim?” Bu düşünceyle yazdığım kodu biraz değiştirip puan kısmına “1” yazdım ve bunu sonsuz bir döngüye soktum. Evet, çalışmıştı! İstediğim herhangi bir uygulamanın puanını düşürüp yükseltebiliyordum. Aşağıdaki görselde Google Chrome uygulamasının puanını düşürdüğümü görebilirsiniz.
Daha sonra bulduğum API isteklerinin gittiği adres olan https://apps.pardus.org.tr/‘yi incelemeye başladım. İstatistikler sayfasına geldiğimde, Son İndirmeler kısmında benim verdiğim rastgele değerlerin Dağıtım sütunda gözüktüğünü fark ettim. Bunu görünce hemen heyecanlandım. Çünkü eğer burası benim verdiğim her değeri kabul ediyorsa bir XSS payload’ını da kabul edebilirdi.
Hemen yeni bir Python kodu yazdım ve bu sefer dağıtım ismini yazadığım kısma basit bir Javascript kodu yerleştirdim. Beklediğim oldu ve bu Javascript kodunu web sitesinde çalıştırmayı başardım.
Küçük bir not yazıp hatayı hemen raporladım.
Bu bulduklarım üzerine birkaç hata ve öneriyle birlikte başvurumu tamamladım. Yarışma sonuçlarının açıklandığına dair mail gelince çok heyecanlanmıştım. Sonuç sayfasında kendimi görünce tabii ki aşırı mutlu oldum. Yarışma açıklanmıştı ancak Teknofest Adana’ya daha aylar vardı ve ben ise sabırsızlanıyordum. Sonunda o gün geldiğinde diğer finalistlerle tanıştım. Hep beraber Pardus standına gittik ve geliştirici ekibiyle tanıştık. Hepsi çok samimi ve güzel insanlardı.
Özet Olarak
Teknofest 2024 Pardus Hata Yakalama ve Öneri Yarışması’na katıldığım bu serüvende yaşadıklarımı ve öğrendiklerimi sizinle paylaşmak istedim. Yarışma sürecinde hem Pardus dünyasını keşfettim hem de teknik anlamda kendimi geliştirme fırsatı buldum. Karşılaştığım zorluklar ve bulduğum hatalar sayesinde yeni şeyler öğrenirken, Pardus geliştirici ekibiyle tanışarak çok güzel bir deneyim yaşadım. Eğer Pardus’a katkı sağlamak, yeni şeyler öğrenmek ve kendinizi bu alanlarda geliştirmek istiyorsanız, bu yarışmaya kesinlikle katılmalısınız.