Güncell Konular

Adım 1 – WordPress’i Güncel Tutma

İlk ve en önemli ipucudur. Eğer temiz ve zararlı yazılım içermeyen bir internet sitesi istiyorsanız WordPress’i güncel tutmalısınız. Basit bir tavsiye gibi görünsede, tüm WordPress kurulumlarının sadece %22’si en son sürümü kullanmaktadır.
WordPress 3.7 sürümünde otomatik güncelleme özelliğini ekledi, ancak sadece küçük çaplı güvenlik güncellemeleri için çalışıyor. Dolayısıyla başlıca core güncellemeleri manuel olarak yapılmalı.
Eğer WordPress güncellemesi nasıl yapılır bilmiyorsanız, bu rehbere göz atın.

Adım 2 – Daha Az Yaygın Olan Giriş Bilgileri Kullanma


WordPress kullanıcı adı olarak hala admin mi kullanıyorsunuz? Eğer cevabınız evet ise herhangi bir saldırganın yönetici panelinize giriş denemelerini kolaylaştırıyorsunuz demektir. Yönetici kullanıcı adını başka birşeyle değiştirmeniz (nasıl yapacağınızı bilmiyorsanız bu rehbere göz atın) veya farklı bir yönetici hesabı oluşturarak eskisini silmeniz şiddetle tavsiye edilmektedir. Eğer ikinci seçeneği tercih ediyorsanız aşağıdaki adımları uygulayın:
  1. WordPress Admin paneline girin
  2. Menü’den Kullanıcılar‘a tıklayın ve ardından Yeni Ekle sekmesini açın.
  3. Yeni bir kullanıcı oluşturun ve yönetici rolü ekleyin.
  4. WordPress’e yeni kullanıcı adınızla giriş yapın.
  5. Kullanıcılar bölümüne geri dönün ve Admin kullanıcısını silin.
İyi bir şifre WordPress güvenliği konusunda büyük rol oynamaktadır. Rakamlar, büyük ve küçük harfler, özel karakterler içeren bir şifreyi brute force yöntemiyle ele geçirmek çok daha zordur. LastPass ve 1Password kompleks şifreleri yönetebilmenize yardımcı olur. Ayrıca eğer WordPress kontrol panelinize güvensiz bir ağa (ör: kahve dükkanları, halka açık kütüphaneler vb.) bağlıyken giriş yapmak zorunda kalırsanız giriş bilgilerinizi koruyacak güvenli bir VPN kullanmayı unutmayın.

Adım 3 – 2 Adım Doğrulama Etkinleştirme

İki-adım doğrulama, giriş sayfanızda muazzam bir güvenlik katmanı oluşturur. İsminden de anlaşılacağı üzere giriş yapabilmek için uygulanması gereken bir adım ekler. Bu özelliği muhtemelen eposta, internet bankacılığı veya hassas bilgi içeren bir başka hesabınızda kullanıyorsunuzdur. Peki niçin WordPress’de kullanmayasınız?
Kulağa biraz karmaşık gelse de WordPress iki adım doğrulamayı etkinleştirmek oldukça kolaydır. Tüm yapmanız gereken 2 adım doğrulama uygulamasını yüklemek ve WordPress’inizi ayarlamak. WordPress iki adım doğrulama etkinleştirmesini nasıl yapacağınızı öğrenmek için bağlantıya tıklamanız yeterlidir.

Adım 4 – PHP Hata Raporlamayı Devre Dışı Bırakma

Eğer web sitesi geliştiriyor ve herşeyin düzgün çalıştığına emin olmak istiyorsanız PHP hata raporlama yardımcı olabilir. Ancak hataları tüm herkese göstermek ciddi bir güvenlik ihlalidir.
Bunu olabildiğince çabuk düzeltmelisiniz. Korkmanıza gerek yok, WordPress’de PHP hata raporlamayı kapatabilmek için kod bilgisine ihtiyacınız yoktur. Çoğu hosting sağlayıcı hata raporlama özelliğini kontrol paneli içerisinden kapatma seçeneği sunuyor. Eğer bu özellik yoksa, wp-config.php dosyası içerisine aşağıdaki satırları ekleyin. wp-config.php dosyasını düzenlemek için FTP istemcisi veya Dosya Yöneticisi kullanabilirsiniz:
error_reporting(0);
@ini_set(‘display_errors’, 0);
İşte bu kadar. Hata raporlama artık kapalı.

Adım 5 – Nulled WordPress Temaları Kullanmama

“Bedava peynir sadece fare kapanındadır” sözünü aklınızdan çıkarmayın. Aynı şeyi nulled WordPress tema ve eklentileri içinde söyleyebiliriz.
İnternette dolaşan binlerce nulled eklenti ve tema bulunuyor. Kullanıcılar bunları çeşitli Warez veya torrent sitelerinden ücretsiz şekilde indirebiliyor. Bilmedikleri şey ise bunların çoğu zararlı yazılımlar ve siyah şapka SEO bağlantılarıyla doludur.
Nulled eklenti ve temalar kullanmayın. Bu etik olmadığı gibi aynı zamanda WordPress güvenliği açısından muazzam derecede zararlıdır. Sonucunda internet sitenizi düzeltmesi için bir geliştiriciye çok daha fazla para ödeyebilirsiniz.

Adım 6 – WordPress Zararlı Yazılım Taraması

Hackerlar, WordPress’e zararlı yazılım bulaştırmak için eklenti veya temalardaki açıkları sıklıkla kullanırlar. Bu sebeple blog sitenizi sıklıkla taramak hayati önem arzediyor. Bu amaç doğrultusunda oldukça fazla iyi tasarlanmış eklentiler mevcut. WordFence bu noktada öne çıkanlardan birisi. Manuel ve otomatik tarama seçenekleriyle birlikte çeşitli farklı ayarlar sunuyor. Hatta değiştirilmiş / zararlı dosyaları birkaç tıklamayla kurtarma şansınız mevcut. Ücretsiz ve açık kaynak kodludur. Bu sebepler bile kendi başlarına eklentiyi hemen şimdi kurmanız için yeterli olmalıdır.
Diğer popüler WordPress güvenlik eklentileri:
  • BulletProof Security – WordFence’in aksine, BulletProof dosyalarınızı taramaz ancak bir güvenlik duvarı, veritabanı ve daha fazlasını sunar. Bu eklentinin en güzel yanlarından birisi birkaç tıklamayla kurularak ayarlanabilir olmasıdır.
  • Sucuri Security – bu eklenti sizi DOS saldırılarına karşı korur, kara liste oluşturur ve internet sitenizde zararlı yazılımlara karşı tarama yaparak güvenlik duvarınızı yönetir. Eğer birşey tespit ederse, eposta ile bilgilendirme sağlar. Google, Norton, McAfee – tüm bu karaliste motorları bu eklentide bulunuyor.
Hepsini denemekten çekinmeyin. WordPress eklentilerini nasıl yükleyebileceğinizi öğrenmek için bu detaylı rehbere göz atabilirsiniz.

Adım 7 – WordPress Sitenizi Daha Güvenli Bir Hosting’e Taşıma

Garip bir tavsiye gibi görünebilir ancak istatistiklere göre WordPress sitelerinin %40’ı hosting hesaplarındaki açıklar kullanılarak ele geçiriliyor. Bu rakamın kendisi size mevcut hosting seçiminizi sorgulatmalı ve WordPress sitenizi daha güvenli bir hosting hizmetine taşıtmalıdır. Yeni bir hosting ararken aklınızda bulunması gereken birkaç kural şunlardır:
  • Eğer paylaşımlı hosting ise, hesabınızın diğer kullanıcılardan izole olduğuna emin olun ve bir sitenin sunucudaki diğerlerine zarar verme olasılığını sıfıra indirin.
  • Otomatik yedekleme özelliğinin olmasına dikkat edin.
  • Sunucu bazlı güvenlik duvarı ve virüs tarama aracı olduğuna emin olun.

Adım 8 – Olabildiğince fazla yedek oluşturma

Sahiplerinin binlerce dolar harcayarak güvenliğini arttırmaya çalıştığı en büyük internet siteleri bile her gün hacklenmektedir.
Eğer en iyi yöntemleri kullanıyor ve bu rehberdeki ipuçlarını uyguluyorsanız, WordPress sitenizi sıklıkla yedeklemek hayati önem teşkil ediyor.
Yedek oluşturmanın çeşitli yolları vardır. Örneğin WordPress dosyalarını manuel olarak indirebilir, veritabanını yükleyebilir veya hosting firmanızın yedekleme aracını kullanabilirsiniz. Bir başka yöntemi ise WordPress eklentilerini kullanmaktadır. En popüler WordPress yedekleme eklentileri şöyledir:
Hatta WordPress yedekleme işlemini otomatik olarak yapabilir ve sitenizi Dropbox içinde yedekleyebilirsiniz.

Adım 9 – Dosya Düzenlemeyi Kapatma

Bildiğiniz gibi, WordPress’in dahili dosya düzenleme aracı sayesinde PHP dosyalarını değiştirebiliyorsunuz. Bu özellik kullanışlı olsa da bazı zararları olabilir. Eğer bir saldırgan WordPress admin panelinizi ele geçirirse bakınacağı ilk şey dosya editörüdür. Bazı WordPress kullanıcıları bu özelliği tamamen devre dışı bırakmayı tercih ediyor. wp-config.php dosyasını düzenleyerek aşağıdaki satırı eklediğinizde bu özelliği kapatabilirsiniz:
define( 'DISALLOW_FILE_EDIT', true );
WordPress’de dosya düzenlemeyi kapatmak için yapmanız gereken bu kadardır.
ÖNEMLİ: Eğer bu özelliği tekrar aktifleştirmek isterseniz, FTP istemcisi veya hosting firmanızın Dosya Yöneticisini kullanarak bu kodu wp-config.php dosyasından kaldırın.

Adım 10 – Kullanılmayan Tema ve Eklentileri Kaldırma

WordPress sitenizde temizlik yapın ve kullanılmayan tüm eklenti ve temaları kaldırın. Saldırganlar çoğu zaman devre dışı ve eski temalarla eklentileri tarar (resmi WordPress eklentileri dahil) ve bunları kullanarak admin paneline erişim sağlamayı veya sunucunuza zararlı dosyalar yüklemeyi denerler. Kullanmayı bıraktığınız eklenti ve temaları silerek WordPress güvenliğini biraz daha arttırmış olursunuz.

Adım 11 – Daha İyi WordPress Güvenliği İçin .htaccess Kullanma

.htaccess dosyası WordPress bağlantılarının düzgün şekilde çalışması için gereklidir. .htaccess dosyasında doğru kurallar olmadığında çok fazla 404 hatası alırsınız.
Çoğu kullanıcı .htaccess dosyasının WordPress güvenliğini arttırmak için kullanılabileceğini bilmez. Örneğin .htaccess dosyasıyla belirli klasörler üstünde PHP çalıştırmayı devre dışı bırakabilir ve erişimi engelleyebilirsiniz. Aşağıdaki örnekler .htaccess dosyasını kullanarak WordPress güvenliğini nasıl arttırabileceğinizi gösteriyor.
ÖNEMLİ Herhangi bir değişiklik yapmadan önce eski .htaccess dosyasının yedeğini almanız şiddetle tavsiye edilir. Bunun için FTP istemcisi veya Dosya Yöneticisikullanabilirsiniz.
WordPress Admin Bölümüne erişimi kapatma
Aşağıdaki kodu kullanarak WordPress yönetici bölümüne sadece belirli IP’lerden giriş izni verebilirsiniz.
AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "WordPress Admin Access Control"
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
allow from xx.xx.xx.xxx
allow from xx.xx.xx.xxx
</LIMIT>
xx.xx.xx.xxx kısmını kendi IP adresinizle değiştirmeniz gerektiğini unutmayın. Bu internet sitesini kullanarak IP adresinizi öğrenebilirsiniz. Eğer WordPress sitenizi yönetmek için birden fazla bağlantı kullanıyorsanız diğer IP adreslerininde buraya dahil edildiğine emin olun (istediğiniz kadar ekleyebilirsiniz). Eğer dinamik IP adresine sahipseniz bu kodu kullanmanız tavsiye edilmez.
Belirli Klasörlerde PHP çalıştırmayı devre dışı bırakma
Saldırganlar WordPress upload klasörüne arka kapı scriptleri yüklemeyi severler. Varsayılan olarak bu klasör sadece medya dosyaları yüklemek içindir. Dolayısıyla herhangi bir PHP dosyası içermemesi gerekir. Aşağıdaki kurallarla /wp-content/uploads/ içinde yeni bir .htaccess dosyası oluşturarak PHP çalıştırma işlemini devre dışı bırakabilirsiniz:
<Files *.php>
deny from all
</Files>
wp-config.php Dosyasını Koruma
wp-config.php dosyası WordPress ayarlarını ve MySQL veritabanı bilgilerini içerir. Bu sebeple en önemli WordPress dosyasıdır. Bu yüzden her WordPress hacker’ının başlıca hedefidir. Ancak bu dosyası aşağıdaki .htaccess kurallarını kullanarak kolayca koruyabilirsiniz:
<files wp-config.php>
order allow,deny
deny from all
</files>

Adım 12 – Varsayılan WordPress veritabanı ekini değiştirerek SQL saldırılarını önleme

WordPress veritabanı internet sitenizin çalışabilmesi için gerekli tüm bilgileri tutar ve depolar. Sonuç olarak saldırganlar ve SQL saldırıları gerçekleştirmek için otomatik kod çalıştıran spammerlar için ağız sulandıran bir hedeftir. WordPress kurulumu esnasında çoğu kişi varsayılan wp_ ekini değiştirmeye tenezzül etmez. WordFence‘e göre her 5 WordPress sitesinden 1 tanesi SQL saldırıları sebebiyle hackleniyor. Varsayılan ayar **wp** olduğundan saldırganlar öncelikle bu değeri hedef alıyor. Bu adımda WordPress sitenizi bu tür saldırılara karşı nasıl daha güvenli hale getireceğiniz üzerinde duracağız.

Varolan bir WordPress sitesinin tablo ekini değiştirme

ÖNEMLİ! Önce güvenlik. Başlamadan önce WordPress MySQL veritabanınızın yedeğini almayı unutmayın.

Bölüm 1 – wp-config.php içindeki eki değiştirme

wp-config.php dosyasını bulmak için FTP istemcisi veya Dosya Yöneticisi kullanın ve $table_prefix  değerini arayın.
Rakamlar, harfler veya alttan çizgiler ekleyebilirsiniz. Ardından değişiklikleri kaydedin ve sıradaki adıma geçin. Biz bu rehberde yeni tablo eki olarak wp_1secure1_ kullanacağız.
wp-config.php dosyasındayken veritabanı adını da bulabilirsiniz ve böylece hangi veritabanını düzenlemeniz gerektiğini öğrenebilirsiniz. define(‘DB_NAME’ bölümünü arayın.

Bölüm 2 – Tüm veritabanı tablolarını güncelleme

Şimdi WordPress veritabanınızdaki tüm girdileri güncellemeniz gerekiyor. Bunu phpMyAdmin kullanarak gerçekleştirebilirsiniz.
Bölüm 1’de yerini bulduğunuz veritabanını seçin ve açın.
Normal bir WordPress kurulumunda 12 tablo vardır ve her birinin güncellenmesi gerekir. Ancak phpMyAdmin’deki SQL bölümü kullanılarak bu işlem hızlı bir şekilde yapılabilir.
Her bir tabloyu manuel olarak değiştirmek oldukça fazla zaman alabilir bu yüzden SQL kullanarak işleri biraz hızlandıracağız. Aşağıdaki syntax’ı kullanarak veritabanınızdaki tüm tabloları güncelleyin.
RENAME table `wp_commentmeta` TO `wp_1secure1_commentmeta`;
RENAME table `wp_comments` TO `wp_1secure1_comments`;
RENAME table `wp_links` TO `wp_1secure1_links`;
RENAME table `wp_options` TO `wp_1secure1_options`;
RENAME table `wp_postmeta` TO `wp_1secure1_postmeta`;
RENAME table `wp_posts` TO `wp_1secure1_posts`;
RENAME table `wp_terms` TO `wp_1secure1_terms`;
RENAME table `wp_termmeta` TO `wp_1secure1_termmeta`;
RENAME table `wp_term_relationships` TO `wp_1secure1_term_relationships`;
RENAME table `wp_term_taxonomy` TO `wp_1secure1_term_taxonomy`;
RENAME table `wp_usermeta` TO `wp_1secure1_usermeta`;
RENAME table `wp_users` TO `wp_1secure1_users`;
Bazı WordPress temaları veya eklentileri veritabanınında ekstra tablolar oluşturabilir, veritabanınızdaki bazı değerler manuel olarak güncellenmesi gerekebilir. Bunu yapabilmek için options ve usermeta tablolarında ayrı bir SQL sorgusu yapabilirsiniz.
options tablosu için aşağıdakini kullanın:
SELECT * FROM `wp_1secure1_options` WHERE `option_name` LIKE '%wp_%'
usermeta tablosu içinse aşağıdakini:
SELECT * FROM `wp_1secure1_usermeta` WHERE `meta_key` LIKE '%wp_%'
SQL sorgu sonuçlarını aldığınızda tüm wp_ değerlerini yeni ayarlanmış olan ek ile güncelleyin ve işinizi tamamlayın. usermeta tablosu içinde meta_key alanını düzenlemeniz gerekiyor, options tablosunda ise option_name değeri değiştirilmelidir.

WordPress kurulum güvenliğini arttırma

Eğer yeni WordPress siteleri kurmayı planlıyorsanız, bu işlemi tekrar yapmanız gerekmez. Sadece WordPress tablo ekini kurulum esnasında değiştirin:
Tebrikler! SQL saldırılarına karşı WordPress veritabanı güvenliğinizi arttırdınız.
Bilindiği üzere sızma testi yapıldığında hedefe istenildiği yerden yaklaşmak her zaman mümkün olmamaktadır. Hedef sistemin durumunu göz önüne alındığında bir çok karmaşık yapı ile karşılaşılabilmekte ve sızma testi yapan kişiler için bazen anlamlandırması zor durumları ve şartları karşısına çıkarabilmektedir.
Sızma testlerinde karmaşalardan sıyrılmak ve zor durumları aydınlandırabilmek için sistem hakkında bilgi sahibi olmak kritik bir faktördür. Sistem hakkında yeterli bilgi sahibi olunmadığı takdirde test işlemi oldukça fazla uzadığı gibi, sonuçları da çok sağlıklı olamayacaktır. Fazla bilgi sahibi olmanın bir zararı olmayacağı gibi aksine faydası olacaktır.
Kısacası bir Sızma testi işleminde hedef sistem hakkında edinilen bilgiler size gideceğiniz yolun nasıl bir yol olabileceği hakkında önemli görüşler bildirir. Çoğu Hackerın katıldığı gibi bir hedefe sızma işlemi sırasında bilgi toplama aşaması aslında işin yüzden 90'dan fazlasını oluşturduğunu söylemek yanlış olmaz. 
Sızma testi sırasında bilgi toplamayı çeşitlendirebiliriz. Bunlar Aktif ve Pasif bilgi toplama yöntemleridir.
Pasif Bilgi Toplama
Herkese açık bilgilerin taranmasına verilen bilgi toplama yöntemidir. Hedefin kendisi hakkında bir bilgi toplandığından haberi olmaz. Direkt olarak hedefe bir bağlantı gerçekleştirilmez. Pasif bilgi toplama için kullanılan araçlardan bazıları ve özellikleri şunlardır.
theHarvester
Email, subdomains, hostsları bulmak için kullanılan python ile yazılmış bir tooldur. Kali Linux'a kurulu bir şekilde gelmektedir. Oltalama saldırıları yapmak için önemli bilgiler verebilir. Pasif bilgi toplama yaptığı gibi, aktif bilgi toplama yaptığını da unutmamak lazım.
https://github.com/laramies/theHarvester.git adresinden indirilebilir.
Netcraft
Netcraft bir web sitenin web sunucusunu, işletim sistemlerini, arka planda çalışan yazılımları öğrenmek için kullanılan bir websitesidir. Hızlı bir şekilde sonuç verdiği için tercih edilmektedir.
Maltego
İnternetteki çeşitli yerlerden aranan kişi yada web sitesinin verilerini toplayarak grafiksel olarak sonuçlarını döndürebilen bir uygulamadır. Hedef kişinin Facebook, Twitter, İnstagram vb. sosyal medya hesaplarına keşif yapabildiği gibi e-posta adresi için de aramalar yapabilir. Kolay ve anlaşılabilir grafiği sayesinde tercih edilen araçlardan biridir.
Whois
Hedef web sitenin alan adını sorgulayarak tuttuğu kayıtları bulmamızı sağlar. Bu kayıtlar adres, e-posta, telefon numarası olabilir.
Nslookup
nslookup, bir Internet sunucusu yöneticisinin veya herhangi bir bilgisayar kullanıcısının bir ana bilgisayar adı girmesini sağlayan bir programın adıdır ve karşılık gelen IP adresini öğrenir . DNS sorgusu yaparak bilgileri toplayarak kullanıcının alan adlarını veya IP adreslerini bulmaya yarayan bir araçtır.
Google Dorking
Bilgi toplama aşamasında hazır araçlar yada yazılımlar çoğu şeyi yapsa dahi Google araması da çoğu zaman yapılır. Kullanılan programların hata yada güncelleştirme sorunlarında kaynaklı olarak Google araması yapmak güvenilir bir seçenektir.
Shodan
Herkese açık bir şekilde gösterilen IOT cihazlarını bulmaya yarayan bir arama motorudur. Google'a göre içeriğindeki veriyi detaylıca gösterir ve kullanıcıyı kısıtlayan sonuçlar döndürmez.
TinfoLeak
Twitter hesapları üzerinden bilgi edilerek istihbarat toplanmasına yarayan uygulamadır. Aranan kişinin detaylıca bilgilerini toplayabilir.
https://github.com/vaguileradiaz/tinfoleak adresinden indirilebilir.
Aktif Bilgi Toplama
Pasif bilgi toplamanın aksine hedef ile doğrudan iletişime geçilir. Hedefin kendisi hakkında bir bilgi toplandığından haberi olabilir.Aktif bilgi toplama için kullanılan araçlardan bazıları ve özellikleri şunlardır.
Sandmap
Çok sık tercih edilen nmap toolunu kullanarak ağ ve sistemleri keşfetmek için kullanılan bir araçtır. Nmap'e göre kullanılıcı arayüzü sağlayarak daha kolay bir deneyim sunar. Nmap Scripting Engine (NSE) desteği ile kullanabildiği gibi, TOR desteği de mevcuttur.
https://github.com/trimstray/sandmap adresinden indirilebilir.
Yasuo
Ruby dili geliştirilmiş third part yazılımları tarayan ve üzerlerindeki açıkları yakalamaya çalışan uygulamadır. github.com/0xsauby/yasuo adresinden kurulabilir.
dirb
web sitelerin görütüleyebileceğimiz uzantılarını bulmaya yaran uygulamadır. Bulunan uzantılar hakkında sonuçlarıda döndürebilir. Kali Linux'a kurulu olarak gelir ve çok sık tercih edilen tool'dur.
DMitry
Subdomain, email adresleri , açık port taraması , whois sorgusu gibi çeşitli bilgileri elde etmek için kullanılır.
Devploit v3.6
Python ile geliştirilmiş bilgi toplama araçlarından biridir. HTTP başlıklarına, port, GeoIP, Subnet bilgilerine bakmak için kullanılabilir.
https://github.com/joker25000/Devploit adresinden indirilebilir
TrackerJacker
Linux ve MacOS'ta desteklenen bağlantı gerçekleştirmeden Wifi ağının haritasını çıkarmaya yarayan araçtır. Wifi ağına bağlı tüm cihazları görüntüleyebildiği gibi bant genişliği hakkında bilgi de verebilir. https://github.com/calebmadrigal/trackerjacker adresinden indirilebilir.
BruteX
https://github.com/1N3/BruteX.git adresinden indirilebilir. Nmap, Hydra & DNS enum gibi araçları içerir. BruteX'i farklı diğer bilgi toplama araçlarından farklı kılan Brute Force(Kaba Kuvvet) saldırısı yapılmasına olanak sağlamasıdır. SSH, FTP vb. protokolleri açarak buna olanak sağlar.
Merhaba arkadaşlar. Bugün sizlere hedef web sitesinde açık taramaya yarayan safe 3 programının kullanımını anlatacağım. Hadi başlayalım.

İlk başta programımızı açıyoruz.
Hedef sitenin URL sini yazdıktan sonra SCAN a basıyoruz. Ve programımız sitede açık olup olmadığını taramaya başlıyor. Bulduğunda bize gösteriyor.

Programımızın kullanımı bu kadardı. Umarım işinize yarar.


Safe 3 İndirme Linki (Sizler İçin Kendim Uplad Ettim )= TIKLA


Virüs Total

Safe 3 Kullanımı

20 Ağustos 2019 Salı

Remote Code Evaluation Nedir?

Remote Code Evaluation (RCE), kullanıcı girdisinin bir string ya da bir dosyaya enjekte edilmesi ve bu girdinin kullanılan programlama diline ait parser (ayrıştırıcı) tarafından uygulanmasıyla ortaya çıkan bir açık türüdür. Bu durum, genelde, web geliştiricilerinin beklediği bir şey değildir. Bir Remote Code Evaluation zafiyeti suistimale açık web uygulaması ya da web sunucusunun tümü üzerinde bir risk meydana getirebilir. RCE ile ilgili önemli bir nokta şu ki neredeyse tüm programlama dillerinde açığın temelini oluşturan söz konusu evaluation (değerleme) fonksiyonları mevcuttur.

RCE’yi Bir Örnekle Açıklayalım

Kullanıcı girdilerinin, kodun evaluate edilmesini sağlayan fonksiyonlara enjekte edilmesine izin verdiğiniz takdirde bir code evaluation (kod değerleme) meydana gelebilir. Kasti olarak, örneğin, bir hesap makinesi programı yazmak amacıyla matematik fonksiyonlarına erişirken; veya tesadüfen bu olay meydana gelebilir. Tesadüfi denmesinin sebebi şu ki kullanıcı tarafından kontrol edilen bir girdinin söz konusu fonksiyonlara enjekte edilmesi geliştiricilerin istediği bir şey değildir. Zaten, genelde, böyle bir uygulamaya başvurulması önerilmez. Çünkü bu tarz bir uygulama, code evaluation’ın kullanımı açısından kötü bir pratik olacaktır.

Code Evaluation İstismarına Bir Örnek

Her kullanıcı için dinamik olarak değişken isimlerinin oluşturulmasını isteyebilir ve kullanıcılara ait kayıt tarihlerini depoluyor olabilirsiniz. PHP’de bunu aşağıdaki kodla yapmak mümkün:
eval("\$$user = '$regdate');
Kullanıcı adı, genel olarak kullanıcılar tarafından kontrol edilen bir girdi olduğundan, saldırgan aşağıdaki gibi yeni bir isim üretebilir:
x = 'y';phpinfo();//
Sonuç olarak PHP kodu şu hali alır:
$x = 'y';phpinfo();// = '2016';
Görüldüğü üzere değişken x olarak çağırıldı ve y değerini aldı. Saldırgan bu değeri değişkene atayabildikten sonra noktalı virgül (;) kullanarak yeni bir komut başlatabilir hale geldi. Böylelikle string’in geri kalanını derleme dışında bırakabilir ve bunun sonucunda herhangi bir söz dizimi hatası da almaz. Kodu çalıştırdığındaysa sayfada phpinfo çıktısı gösterilir. Bunun sadece PHP’de değil girdiyi evaluate eden fonksiyonların bulunduğu tüm dillerde meydana gelebileceğini unutmamak gerekir.

Stored RCE’yi Bir Örnekle Açıklayalım

Bu metot, yukarıdaki örnekten farklı olarak spesifik bir fonksiyona dayanmamaktadır. Dil yorumlayıcısı tarafından parse edilen belli dosyalar üzerinde meydana gelmektedir. Bir web uygulamasına eklenen konfigürasyon dosyası buna örnek olabilir. İstenmeyen bir durumun meydana gelmemesi için yorumlayıcı tarafından yürütülen dosyalarda kullanıcı girdilerini kullanmaktan kaçınmak gerekir. Bu istismar tekniği çoğu kez, dosya türü ve uzantısı üzerinde gerekli kontrolleri yapmayan bir upload (yükleme) fonksiyonu ile beraber görünür.

Stored Code Evaluation İstismarına Bir Örnek

Her kullanıcı için bir kontrol paneli sunan bir web uygulaması geliştirdiğinizi varsayalım. Kontrol paneli, bir parametreye bağlı olarak belirlenen ve sonrasında bir konfigürasyon dosyasında saklanan bazı kullanıcı ayarlarına (dil değişkeni gibi) sahip. Beklenen girdi şöyle olurdu:
?language=de
Yukarıdaki girdi daha sonra konfigürasyon dosyasına $lan = ‘de’; şeklinde yansıtılır. Bir saldırgan dil parametresini şu şekilde değiştirirse:
de';phpinfo()//
Yukarıdaki kod dosyada şu hali alır:
$lan = 'de';phpinfo()//';
Son olarak konfigürasyon dosyası web uygulamasına eklendiğinde yukarıdaki kod yürütülecektir. Bu da saldırganlara istedikleri komutu çalıştırma imkanı sunar.

RCE Zafiyetinin Etkileri

Bir flaw’ı çalıştırabilen saldırgan bunu genellikle sunucunun ya da programlama dilinin getirdiği ayrıcalıklarla yapabilmektedir. Dillerin çoğunda sistem komutu verilebilir, dosyalarda ya da bağlantılı veritabanlarında yazma, okuma ve silme işlemleri gerçekleştirilebilir.

RCE’yi Engellemenin Yolları

Genel bir tavsiye vermek gerekirse evaluate edilmiş kodun içinde kullanıcı girdilerini kullanmaktan kaçınmak iyi bir tercih olabilir. En iyi seçenek eval gibi fonksiyonları hiçbir zaman kullanmamak olurdu. Ayrıca ilgili dil tarafından ayrıştırılabilen dosya içeriklerinin kullanıcılar tarafından düzenlenmesine engel olmak gerekir. Buna kullanıcıların, web uygulamasında yükleyebileceği ya da oluşturabileceği dosyaların uzantılarına ve isimlerine karar verememeleri de dahildir.

RCE’yi Engellemek için Neler Yapmamalısınız

  • Kullanıcı girdisini sanitize etmek… Kısıtlamalar için yapılan bypass işlemleri ihtimalinden dolayı çoğu zaman mümkün olmamaktadır.
  • Sunucudaki dosyaların içeriğini ya da uzantısını değiştirme kararını ve güvenli dosya yükleme yolları için tercihi kullanıcılara bırakmak.
  • Herhangi bir kullanıcı kontrollü girdiyi callback veya evaluation fonksiyonlarına göndermek.
  • Özel karakterleri ya da fonksiyon isimlerini blacklist’e almak… Bu yöntemle güvenli bir implementasyonu sağlamak neredeyse imkansızdır.

Remote Code Evaluation Nedir?

19 Ağustos 2019 Pazartesi






Açıklama



XPath, bir XML belgesinde belirli öğelerin (öznitelikler, işlem yönergeleri vb. Dahil) nasıl konumlandırılacağını tanımlayan bir sorgu dili türüdür. Sorgu dili olduğundan XPath, Structured Query Language (SQL) 'e biraz benzemektedir, ancak XPath, erişim kontrolü kısıtlamaları olmadan bir XML belgesinin hemen hemen herhangi bir bölümüne başvuruda bulunmak için kullanılabileceğinden farklıdır. SQL'de bir "kullanıcı" (XPath / XML bağlamında tanımlanmayan bir terimdir) belirli veritabanlarına, tablolara, sütunlara veya sorgulara sınırlandırılabilir. Bir saldırgan, bir XPATH Enjeksiyon saldırısı kullanarak, kendi seçimini yapması için XPATH sorgusunu değiştirebilir.



Kör XPath Enjeksiyon saldırıları, kullanıcı tarafından sağlanan verileri güvenli olmayan bir biçimde içine alan bir uygulamadan veri çıkarmak için kullanılabilir. Giriş düzgün bir şekilde sterilize edilmediğinde, saldırgan yürütülen geçerli XPath kodunu sağlayabilir. Bu tür saldırılar, saldırganın XML dokümantasyonunun yapısı hakkında bilgisi olmadığı veya belki de hata mesajının bastırıldığı ve gerçek / yanlış sorular sorarak bir seferde yalnızca bir kez bilgi alabileceği durumlarda kullanılır. booleanized sorguları), Blind SQL Injection gibi.



Örnekler



Saldırgan, iki yöntem kullanarak başarılı bir saldırı kurabilir: Boolenization ve XML Crawling. XPath sözdizimine ekleyerek, saldırgan ek ifadeler kullanır (saldırganın enjeksiyon yerine ne girdiğini değiştirerek).



Boolenization



"Boolenization" yöntemini kullanarak saldırgan, verilen XPath ifadesinin Doğru mu, Yanlış mı olduğunu öğrenebilir. Saldırganın amacının bir web uygulamasında bir hesaba giriş yapmak olduğunu varsayalım. Başarılı bir oturum açma "Doğru", başarısız oturum açma girişimi "Yanlış" döndürür. Bilginin sadece küçük bir kısmı analiz edilen karakter veya sayı ile hedeflenir. Saldırgan bir dizgiye odaklandığında, bu dizginin ait olduğu karakter sınıfı / karakter aralığı içindeki her bir karakteri kontrol ederek bütünüyle açığa çıkarabilir.





Saldırgan, S'nin bir dize olduğu bir dize uzunluğu (S) işlevi kullanarak, saldırgan bu dizenin uzunluğunu bulabilir. Uygun sayıda alt dizgi (S, N, 1) işlev yinelemeleriyle, burada S, daha önce belirtilen bir dizedir, N, bir başlangıç ​​karakteridir ve "1", N karakterinden sayılan bir sonraki karakterdir, saldırgan, numaralandırmayı yapabilir. tüm dize.



Kod:
<?xml version="1.0" encoding="UTF-8"?>
<data>
   <user>
   <login>admin</login>
   <password>test</password>
   <realname>SuperUser</realname>
   </user>
   <user>
   <login>rezos</login>
   <password>rezos123</password>
   <realname>Simple User</realname>
   </user>
</data

Foksiyon:
string.stringlength(//user[position()=1]/child::node()[position()=2]) returns the length of the second string of the first user (8),
substring((//user[position()=1]/child::node()[position()=2),1,1) returns the first character of this user ('r').

XML tarama

XML belge yapısını tanımak için saldırganın kullanabileceği:
sayısı (ifade)

Kod:
count(//user/child::node()

Bu, düğüm sayısını döndürür (bu durumda 2).
dize uzunluğu (string)

Kod:
string-length(//user[position()=1]/child::node()[position()=2])=6

Bu sorguyu kullanarak saldırgan, ilk düğümün (user 'admin') ikinci dizesinin (parola) 6 karakterden oluşup oluşmadığını öğrenir.
alt dize (dize, sayı, sayı)

Kod:
substring((//user[position()=1]/child::node()[position()=2]),1,1)="a"

Bu sorgu, kullanıcının ('admin') şifresinin ilk karakterinin "a" karakteri olduğunu onaylar (Doğru) veya reddeder (Yanlış).
Giriş formu şöyle görünürse:

C#:

Kod:
String FindUser;
FindUser = "//user[login/text()='" + Request("Username") + "' And
      password/text()='" + Request("Password") + "']";
  
  
  Kod:
Username: ' or substring((//user[position()=1]/child::node()[position()=2]),1,1)="a" or ''='

XPath sözdizimi size yaygın SQL Injection saldırılarını hatırlatabilir, ancak saldırgan bu dilin ifadenin geri kalan kısmını yorumlamalarına izin vermediğini düşünmelidir. Bu sınırlandırmayı atlamak için saldırganın, saldırıyı bozabilecek tüm ifadeleri susturmak için OR ifadeleri kullanması gerekir.
Boolenization nedeniyle, sorguların sayısı, küçük bir XML belgesinde bile, çok yüksek olabilir (binlerce, yüz binlerce ve daha fazlası). Bu saldırı bu yüzden elle yapılmıyor. Birkaç temel XPath işlevini bilen saldırgan, kısa sürede bir dokümanın yapısını yeniden oluşturacak ve bunu kendi başına verilerle dolduracak bir uygulama yazabilir.

Kaynak: OWASP


Blind XPath Injection Nedir?

15 Ağustos 2019 Perşembe
  SQL injection, saldırganların veritabanınıza erişmesine neden olan bir güvenlik problemidir. kod enjeksiyon tekniğiyle veritabanınızı yerle bir edebilecek, en sık kullanılan web hack yöntemlerinden biridir. 

    SQL komutlarına web sayfası aracılığıyla kötü amaçlı kod yerleştirmek için SQL injection kullanılır. SQL injection genellikle kullanıcıdan kullanıcı adı gibi bir giriş istendiğinde habersizce veritabanında çalışan bir SQL komutudur. 


    SQL injection (ya da SQLi) rakiplerinizin web uygulamalarınızın veritabanı kontrolünü ele almak için yaptığı en az karmaşık güvenlik saldırılarından biridir. SQLi'nin en basit hali kullanıcı girişiyle olandır. Web uygulamalarında bulunan formlara girilen kullanıcı bilgisi işlenmek için veritabanına front end kısmından back end kısmına geçer. Saldırgan web sitenizi zehirlemek için çerez ayarlarını değiştirebilir. Çerezler yerel dosyalarda bilgi tutar. Web uygulamaları genellikle bu çerezleri yüklediği için kötü amaçlı yazılım back end veritabanına enjeksiyon yapabilir.


    SQL Injection'ın farklı hali vardır: Klasik SQLi, Blind (kör) or Inference (çıkarım) SQLi, Veritabanı- Özel SQLi ve Bileşik SQL injection. SQLi saldırısı pek de zor değil, ama en iyi yazılımcılar bile hata yapabilir. Bunun tespit edilmesi, riskin azaltılması için önemli. Bir güvenlik duvarı (WAF) SQLi saldırısını anlayabilir ama yine de çok da güvenmemek iyidir.
Kaçınmak için dinamik SQL kullanılmamalı. Saklanmış bilgiler dinamik SQL'den daha iyidir. Gözden kaçırılan bir meta-karakter enjeksiyona yol açabilir. SQL için tek tırnak (‘) önemli bir meta-karakterdir. Tırnaklar arası string eklendiği için sıkıntı olabilir. Eşittir (=) ve noktalı virgül (;) gibi karakterler de aynı şekilde sıkıntıya yol açamayacak şekilde kullanılmamalı. 

SQL injection, saldırganların veritabanınıza erişmesine neden olan bir güvenlik problemidir. kod enjeksiyon tekniğiyle veritabanınızı yerle bir edebilecek, en sık kullanılan web hack yöntemlerinden biridir.
SQL komutlarına web sayfası aracılığıyla kötü amaçlı kod yerleştirmek için SQL injection kullanılır. SQL injection genellikle kullanıcıdan kullanıcı adı gibi bir giriş istendiğinde habersizce veritabanında çalışan bir SQL komutudur.
SQL injection (ya da SQLi) rakiplerinizin web uygulamalarınızın veritabanı kontrolünü ele almak için yaptığı en az karmaşık güvenlik saldırılarından biridir. SQLi'nin en basit hali kullanıcı girişiyle olandır. Web uygulamalarında bulunan formlara girilen kullanıcı bilgisi işlenmek için veritabanına front end kısmından back end kısmına geçer. Saldırgan web sitenizi zehirlemek için çerez ayarlarını değiştirebilir. Çerezler yerel dosyalarda bilgi tutar. Web uygulamaları genellikle bu çerezleri yüklediği için kötü amaçlı yazılım back end veritabanına enjeksiyon yapabilir.
SQL Injection'ın farklı hali vardır: Klasik SQLi, Blind (kör) or Inference (çıkarım) SQLi, Veritabanı- Özel SQLi ve Bileşik SQL injection.
SQLi saldırısı pek de zor değil, ama en iyi yazılımcılar bile hata yapabilir. Bunun tespit edilmesi, riskin azaltılması için önemli. Bir güvenlik duvarı (WAF) SQLi saldırısını anlayabilir ama yine de çok da güvenmemek iyidir.
Kaçınmak için dinamik SQL kullanılmamalı. Saklanmış bilgiler dinamik SQL'den daha iyidir. Gözden kaçırılan bir meta-karakter enjeksiyona yol açabilir. SQL için tek tırnak (‘) önemli bir meta-karakterdir. Tırnaklar arası string eklendiği için sıkıntı olabilir. Eşittir (=) ve noktalı virgül (;) gibi karakterler de aynı şekilde sıkıntıya yol açamayacak şekilde kullanılmamalı.
SQL injection problemlerinizin iyileştirme işlemleri için CGN yazılıma ulaşabilirsiniz.
SQL injection, saldırganların veritabanınıza erişmesine neden olan bir güvenlik problemidir. kod enjeksiyon tekniğiyle veritabanınızı yerle bir edebilecek, en sık kullanılan web hack yöntemlerinden biridir.
SQL komutlarına web sayfası aracılığıyla kötü amaçlı kod yerleştirmek için SQL injection kullanılır. SQL injection genellikle kullanıcıdan kullanıcı adı gibi bir giriş istendiğinde habersizce veritabanında çalışan bir SQL komutudur.
SQL injection (ya da SQLi) rakiplerinizin web uygulamalarınızın veritabanı kontrolünü ele almak için yaptığı en az karmaşık güvenlik saldırılarından biridir. SQLi'nin en basit hali kullanıcı girişiyle olandır. Web uygulamalarında bulunan formlara girilen kullanıcı bilgisi işlenmek için veritabanına front end kısmından back end kısmına geçer. Saldırgan web sitenizi zehirlemek için çerez ayarlarını değiştirebilir. Çerezler yerel dosyalarda bilgi tutar. Web uygulamaları genellikle bu çerezleri yüklediği için kötü amaçlı yazılım back end veritabanına enjeksiyon yapabilir.
SQL Injection'ın farklı hali vardır: Klasik SQLi, Blind (kör) or Inference (çıkarım) SQLi, Veritabanı- Özel SQLi ve Bileşik SQL injection.
SQLi saldırısı pek de zor değil, ama en iyi yazılımcılar bile hata yapabilir. Bunun tespit edilmesi, riskin azaltılması için önemli. Bir güvenlik duvarı (WAF) SQLi saldırısını anlayabilir ama yine de çok da güvenmemek iyidir.
Kaçınmak için dinamik SQL kullanılmamalı. Saklanmış bilgiler dinamik SQL'den daha iyidir. Gözden kaçırılan bir meta-karakter enjeksiyona yol açabilir. SQL için tek tırnak (‘) önemli bir meta-karakterdir. Tırnaklar arası string eklendiği için sıkıntı olabilir. Eşittir (=) ve noktalı virgül (;) gibi karakterler de aynı şekilde sıkıntıya yol açamayacak şekilde kullanılmamalı

Temel SQL Komutları nelerdir? 

Vatan ne Türkiye'dir Türklere ne Türkistan/Vatan, büyük ve müebbet bir ülkedir Türklere Turan ©