Markafoni XSS Açığı

markafoni.com ‘ daki XSS açığı şu şekildeydi:

Anasayfadaki arama barında javascript kodunuzu çalıştırabiliyordunuz.( script type=”text/javahedehodoad” ile başlarsanız değil tabii ki.)

markafoni-guvenlik-acigi2

destek@markafoni.com’ a XSS açığı bulduğuma geri dönüş sağladığınız takdirde anlatacağımı söyledim. Güvenlik ve Kalite ekibinin takım lideri aradı ve açığın ne olduğunu anlattım. Geri dönüş yapıp bu açığı ileri taşıdık ve bu büyük bir açık lütfen gizlilik çerçevesinde tutalım deyip yönetime sunacağını bildirdi.

Sonuç olarak; açığı yaklaşık 3 saat sonra kapadılar ve sadece teşekkür ettiler.

Edit : 250 TL Markafoni.com’ da kullanmak uzere cek hediye ettiler. Bu çekle de yaklaşık 650 liralık alışveriş yaptım, aldığım ürünlerin birçoğu da olmadı zira, geri iade etsem bana 650 liralık ödeme yapacaklarına adım gibi emindim fakat uğraşmak istemedim.

Ardunio ve LM35DZ ile sıcaklık ölçümü

Uzun zamandır yazmayı planladığım ve bir türlü yazamadığım Ardunio ile Sıcaklık Ölçer yazısını yazmak bugüne nasip oldu :)

Bundan yaklaşık 1,5 yıl öncesinde projesini geliştirdiğimiz bir devlet kurumunun ihalesinde geliştirilen sistemin bulunduğu odanın sıcaklığını bildiren bir cihaz verilmelidir diye ihale şartnamesinde madde vardı.

Türkiye’den hızlıca tedarik etmem gerekiyordu bu cihazı. Araştırmalarım sonucunda en ideal cihaz şu olmuştu.(Araştırmak için çok vaktim olmadı ama 2 saatlik araştırma sonucundaki seçenekler arasındaki en ideali diyebiliriz)

ardunio4

Fiyatı 227€. Sıcaklık ölçmek için hiç uygun görünmeyen bir design. Sensör kapalı bir kutunun içinde. Sensör kapalı kutunun içinde olduğu zaman, sıcaklık ölçmede sapmalar olacağı kanaatindeyim. Ve cihaz SMTP dahi desteklemiyor.

Hiç içime sinmemesine rağmen, ihalenin kabul alması için SMTP desteklemeyen, sensörü kapalı kutuda olan ve 227€ gibi bir fiyatı olan cihazı satın almak durumunda kaldık.

Bu cihazdan, 10-20 $ arasında değişen herhangi bir Ardunio boardı ve tanesi 1-2$ olan “birkaç” sıcaklık sensörü ile yapalım dedik.

Birkaç sıcaklık sensörü çünkü, her sensörün kalibrasyonu aynı olmayabilir. En az 2 sensör koyup bu sensörler arasındaki sıcaklıklar arasında çok büyük sapma yoksa sıcaklığın o değer olduğundan emin olabiliriz.

Ya da sensörün 1′i bozulduğu anda, diğer sensörden ölçüm yapmaya devam edebilmeliyiz diye düşündük.

20160527_165110

Devremizi bu şekilde 2 sensör olacak şekilde tasarladım.

Boarda upload ettiğim kod şudur :

int ledPin = 13; // select the pin for the LED
int sensorValue0=0, sensorValue1=0, sensorValue2=0, sensorValue3=0, sensorValue4=0, sensorValue5=0;
int incomingByte;

void setup() {
// declare pin 9 to be an output:
pinMode(9, OUTPUT);
// declare the ledPin as an OUTPUT:
pinMode(ledPin, OUTPUT);
// To increase the resolution of 10bit ADC when measuring temperature sensors
// We decrease the reference voltage to internal of Arduino, which is around 1.1V
analogReference(INTERNAL);
Serial.begin(9600);
// Serial.println(“Arduino serial port monitor v0.1 READY”);
// Serial.println(“Click on h to dump Help”);
}

void loop() {
// read the value from the sensor:
sensorValue0 = analogRead(A0);
sensorValue1 = analogRead(A1);
sensorValue2 = analogRead(A2);
sensorValue3 = analogRead(A3);
sensorValue4 = analogRead(A4);
sensorValue5 = analogRead(A5);

incomingByte = Serial.read();
delay(10);

if(incomingByte == 00) Serial.println(“Lütfen bir komut gönderin “);
if(incomingByte == 48) Serial.println(sensorValue0/9.31);
if(incomingByte == 49) Serial.println(sensorValue1/9.31);
if(incomingByte == 50) Serial.println(sensorValue2/9.31);
if(incomingByte == 51) Serial.println(sensorValue3/9.31);
if(incomingByte == 52) Serial.println(sensorValue4/9.31);
if(incomingByte == 53) Serial.println(sensorValue5/9.31);

if(incomingByte == 104) {
Serial.println(“Type 0 – 5 to read analog input values in 10bit text”);
}
}

Ardunio’nun Serial port monitorunden 0 ile 5 arasında herhangi bir input girdiğinizde, size o inputtan gelen değeri dönecektir.

Bunun için de WPF ile küçük bir monitoring toolu yazdım:

Onun da ekran görüntüsü şu şekilde
ardunio2ardunio1

2′nolu sensörden ölçmek istediğinizde ya da 5′den ölçmek istediğinizde seçebiliyorsunuz.

1′den fazla sensör seçili ise, sensörler arasındaki uyuşmazlıklar da kontrol edilebilir ve sapmanın az olduğu değeri dönecektir.

Ve belli bir sıcaklığın üstüne çıktığında mail atacaktır. Ya da bir buzzer bağlayıp onun ötmesini de sağlayabilirdik.

ardunio3

Install ZPanel on CentOS

Bu yazımda, Linux üzerinde DNS management vs. gibi işleri kolaylaştırması açısından ZPanel kurulumunu kısaca anlatacağım.Kernelım CentOS 6.6, ZPanel 6.x ‘e kadar desteklemektedir.Onun için Centos 7 sürümüne sahipseniz kurulumda hata vercektir.

wget paketiyle ZPanel’i download ediyoruz.

wget https://raw.github.com/zpanel/installers/master/install/CentOS-6_4/10_1_1.sh

Sonra download ettiğimiz dosyayı yetkilerinde değişiklik yapıyoruz ;

chmod +x 10_1_1.sh

Daha sonra bu servisi çalıştırmamız gerekli

./10_1_1.sh

Eğer dosyayı herhangi bir dizine download ettiyseniz, ki öyle ettiniz şu hatayı alcaksınız:

“ZPanel has not been detected on this server, the upgrade script can therefore not continue!”

Hatayı okuduğumuzda zpanel’e dair bir şey bulamadığını söylüyor.Oysa ki bunu download etmiştik.Gidip servisin source code’unu bulup bu hata mesajının olduğu satırı buldum.(OpenSource’un harika nimetleri)

if [ ! -d /etc/zpanel ]; then
echo “ZPanel has not been detected on this server, the upgrade script can therefore not continue!”
exit 1;

Kod bloğu bize zpanel’in altında olması gerektiğini söylüyordu.Zpanel’imizin altında çalıştırırsak bu hatayı almamış olcaz.

cd /etc
mkdir zpanel
cd zpanel
wget https://raw.github.com/zpanel/installers/master/install/CentOS-6_4/10_1_1.sh
chmod +x 10_1_1.sh
./10_1_1.sh dediğimiz zaman yaklaşık 1 dakikalık bir kurulum süresinden sonra IP adresini girdiğimizde ZPanel bizi karşılayacaktır.

İyi çalışmalar dilerim

RAID Türleri

Veri günümüzün en önemli unsurlarından biridir.Verinin güvenliğinin önemi kadar , storagelara yazılma hızı da bi’ o kadar önemlidir.Bunun için diskleri konfigüre ettiğimiz RAID yapıları bulunmaktadır.

İlk olarak RAID nedir diyecek olursak ; RAID (Redundant Array of Independent Disks) çok sayıda bağımsız harddiskin büyük bir mantıksal dizi oluşturmak üzere bir araya getirilmesine verilen addır.

RAID dizilerinin başlıca amacı veri kullanılabilirliğini, hızını ve güvenliği artırmaktır.

Raid 0(Striping)

  • Raid 0 sadece performans için üretilmiş teknolojidir.
  • En az 2 disk ile oluşturulur. Raid kart üzerine gelen tüm datalar disk sayısına bölünerek aynı anda hepsine birden yazılır.2 hdd diskiniz varsa tek disk gibi görünmektedir.
  • Örnek olarak elimizde 15.000 rpm bir disk varsa bu diske sadece 15.000 rpm hızı ile yazabilirken 3 adet aynı diskten varsa 45.000 rpm hızında kullanma olanağımız mevcut olur.
  • Veri yazma işlemi de şu şekilde oluyor.. Örneğin s-e-r-h-a-t kelimesini diske yazacaksınız.. 1. diskinize “s-r-a” harfleri; 2.diskinize de “e-h-t” harfleri yazılıyor.. Haliyle okuma esnasında da, teorik olarak her harfin 1 saniye de hdd’den okunduğunu düşünürsek 6 saniyede alınacak veri; 3 saniye içerisinde kotarılmış oluyor 2 harddisk sayesinde..
  • Güvenliği en alt seviyededir.
  • Disklerden biri göçerse tüm veriyi kaybetmiş oluruz.Harddisklerinizden birisinde bir hata meydana gelirse (örneğin 2.disk bozulursa); 1. diskinizde yer alan “s-r-a” harfleri tek başına bir anlam ifade etmeyeceğinden bilgilerinize sonsuza kadar elveda diyebilirsiniz.
  • Kapasiteye bakacak olursak disk sayısının toplamı kadar kapasite elde edilir.

Raid 1(Mirroring)

  • Raid 1’de yapı çok farklıdır.
  • Yine en az 2 disk ile oluşturulan bu yapıda Raid kartına gelen tüm data iki diskede aynı şekilde yazılır. Bu işleme Mirroring’te denilir.
  • Bir disk göçtüğünde diğer disk problem olmamış gibi işlemlere devam eder. Kapasite anlamında da tekdisk kapasitesi elde edilir.

Raid 0+1

  • İşte Raid teknolojisinde performans anlamında en üst seviyede bulunan Raid yapısı budur.
  • Disk sayısı ne kadar fazla ise performans o derecede artar.
  • En az 4 disk ile oluşturulabilir.
  • 2 adet Raid 0 yapısını Raid 1 altında toplayarak yapılan bu yapı gelen tüm dataları parçalayıp tüm disklere dağıtarak okuma yazma yaptığından performans olarak hiçbir yapı performans anlamında bu yapının yanına yaklaşamaz.

Raid 5

  • Hızın ve güvenliğin buluştuğu ortak noktadır,
  • Raid 5 ; sunucu üzerinde varolan birden fazla harddiske aynı verilerin kopyalanmasıdır. Örnek verecek olursak, A kullanıcısının yaptığı her işlem 1 – 2 – 3 – 4  Numaralı harddisklere aynı anda kaydedilir.
  • Eğer daha önce vps kullandıysanız VPS hizmetlerinde harddisk arızalarının sık sık yaşandığını görmüş olmalısınız.
  • Raid 5 yapısıyla birlikte tüm verileriniz aynı anda birden fazla harddisk üzerine kayıt edilir.
  • Harddisklerden birinin arızalanması durumunda aldığınız hizmet sorunsuz şekilde işlemeye devam eder ve verileriniz güvenle korunur.
  • RAID 5 sistemindeki herhangi bir diskin arızalanması durumunda sistemin çalılşmaya devam etmesi, arızalı diskin sistem kapanmadan değiştirilmesi ve RAID 5 yapının tekrar oluşturulmasını sağlamaktadır.
  • Burada tek bir disk güvenlik için kullanılmaktadır.
  • Toplam kapasite bir eksik olacaktır.

Raid 6

  • Raid 5 ile aynı mantıkta çalışır amaç performans vegüvenliktir, ancak sistemin çalışması için en az 4 disk gerekir,
  • 4 tane 2tb’lık disk kullanıldığında veri yazılabilecek alan 4tb’dır
  • Disklerden bir yada iki tanesine zarar gördüğünde kalan 2 disk çalışmaya devam eder ve veri kaybı yaşanmaz

Matador’un Gözyaşı

Beni etkilediği için paylaşmak istedim ;

Fotoğraftaki matador, Alvaro Monera, kariyerine son verdi. Yarışın son mücadelesinde gücünü yitiren Monera yıkılır. Boğanın ona yaklaştığını görünce korkulu sonun yaklaştığını hisseder. Lakin BOĞA ona hiçbir şey yapmadı. Yarıştan sonra matador açıklamasında şöyle diyor:
“Boğa gözümün içine bakarak bağırdı, böyle sadece bağırdı. Her hayvanda olduğu gibi onun da gözlerinde masumiyet vardı. Yüreğimde adaletin hıçkırarak ağladığını işittim. Belki de bağışlanırdım lakin, itiraf edemedim. Kendimi dünyanın en vahşi mahluğu gibi hissediyordum.”
boğa
Bundan sonra Alvaro Munera, hayvan zulmüne karşı bir aktivist oldu.

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

Python ile LOG Dosyaları

Python ‘ da logging i kullanmak için ilk önce logging librarysini import edip sonra  getLogger metoduyla Logları tutcak yeni bir register açmak olcak. Şöyle kipythonshell1

Daha sonra bu kaydeden dosyamızın ne seviyede log yapacağını belirleyip, buna bir tane handler eklemek olcak.

Handler dosyayı .log dosyası şeklinde kaydetmemizi sağlamak için.

Ancak daha fazla handler ekleyebiliriz.

Mesela ben StreamHandler ekledim.

Bu handler ise dosyayı ekrana basmaya yarar.

Python’da ek olarak NullHandler,WatchedFileHandler,RotatingFileHandler,SysLogHandler vs. gibi Handler’lar da mevcut.

daha sonra biz kayıtları istedigimiz şekilde tutabiliriz.

Python ile log_format ımızı belirliyoruz.

Parse etmek istersek bu formatı kendi parse işlemimize göre de rahatça değiştirebiliriz.

daha sonra oluşturduğumuz Handlerları registera atıyoruz.

daha sonra istediğimiz gibi log tutabiliyoruz.

pythonshell2

 

 

 

AdsByCouponDropDown Reklamlarına Dikkat

Sık sık ziyaret ettiğiniz FACEBOOK sayfalarında fazlaca sayısıyla dikkat çeken reklamlar görmeye mi başladınız? Dikkatli olun bilgisayarınıza farklı amaçlar için yüklediğiniz bazı eklentiler ile haksız kazanç elde edenler sebebiyle bu reklamları görüyor olabilirsiniz. FACEBOOK içerisinde tüm gönderiler, zaman tünelleri, fan sayfaları, şirket sayfaları vb. sayfalarda gönderilerin arasında çok fazla sayıda görülen bu reklamların en dikkat çekici özelliği alt kısımlarında “Ads by CouponDropDown” yazması.

FACEBOOK dışında başka internet sitelerinde de görülen bu reklamlar web sitesinin yayıncısı olduğu reklam networklerini tanıyarak o reklamların yanına kendi reklamını yerleştirebiliyor. Özellikle girdiğiniz sayfada tasarım olarak bozukluğa sebep olan bir reklam var ise; örneğin web sitesi yayıncıları uzun dik reklamları yan yana yerleştirerek görsel bir bütünlük oluşturmak ister; fakat girdiğiniz sayfada iki sütunlu bir reklam bloğunda bir sütunda üst üste iki adet reklam ve diğer bir sütunda tek bir reklam duruyor ve bozuk bir görsellik dikkat çekiyorsa ve yine reklam altlarında “Ads by CouponDropDown” yazıyorsa farklı bir amaçla yüklediğiniz bir tarayıcı (eklentisi özellikle Chrome eklentileri) sebebiyle bu reklamlar size gösteriliyor demektir.

Çözüm için ;

Daha farklı eklentiler de benzer bir duruma sebep olabilir fakat bizim tespit ettiğimiz eklenti; FaceBook Zoom Extension.Bu eklentiyi devre dışı bırakarak gösterilen reklamları da devre dışı bırakabilirsiniz. Eklentiyi devre dışı bırakmak için;Mozilla’da direk Firefox yazısının üzerinden eklentiler deyip o eklentiyi etkisizleştir ya da kaldır diyerek devre dışı bırakıyoruz. Chrome den – Menü – Araçlar – Uzantılar ‘a girip FBPHOTOZOOM uzantısının yanındaki check işaretini kaldırarak devre dışı bırakıyoruz. Bunun yanında aynı ekranda göreceğiniz diğer uzantılar (eklentiler) içerisinde yüklediğinizi hatırlamadığınız/kullanmadığınız uzantılar da var ise onları da devredışı bırakın.
Hatta daha da iyisi çöp tenekesi simgesini kullanarak silin. Böylece kullanmadığınız eklentilerden kaynaklanan sorunları ve internet hızınızdaki yavaşlamaları önlemiş olursunuz.

2.TÜRKİYE POSTGRE SQL SEMİNERİ BAHÇEŞEHİR İSTANBUL


Bu yazıyı yazmakla geç kalmışım ama bardakta POSTGRESQL Filini görünce bi’ yazı yazayım dedim .12 Mayıs 2012 pazar günü İstanbul Bahçeşehir Üniversitesi’nde düzenlenen 2.POSTGRESQL Semineri bence kötü denemezdi.Ama iyi denir miydi orası biraz tartışılabilir.2.olmasından ötürü sanırım zamanla çok daha iyi olacağı aşikârdır.Devrim Gündüz’ün twitter adresinden öğrendiğim etkinliği arkadaşlarımla paylaştım: “Kankalar böyle böyle hadi kalkın gidelim “.Bi’ arabaya atladık ve gittik.Üniversiteye  ilk girdiğimde gözüme çarpan ilk şey 2 tane MAC  laboratuvarı olmasıydı:)postgre

Etkinlik için son hazırlıklar tamamlanırken ilk konuşmayı POSTGRESQL Avrupa başkanı Magnus Hagander yaptı.İngilizcemiz yettiğince    konuşmayı anlamaya  çalıştık.9.2 sürümüyle gelecek olan özellikleri anlattı.

Etkinliğin güzel yanı ilk konuşmadan sonra 2 salon halinde farklı konuşmalar yapılcaktı.Program öyle hazırlanmış gayet de hoş olmuş idi.

Markafoni’nin Query Analyse konuşmasını dinlediğimizde adamların vay be mikrosaniyeler için canları çıkıyo dedirtti.

Bi’ Oracle’a  giydirme konuşması vardı bunu es geçmeyelim:)

PHP Zend Framework konuşması demeyelim de daha çok uygulama niteliğinde hoş bi’ sunum vardı.

Kısacası 2.Türkiye POSTGRESQL Konferansı bi’ 3.sınıf öğrencisi olarak , bence iyiydi.

Devrim Gündüz’ün size en sonda bi süprizim var demişti ve o süprize gelindi.Herkes bi’ hediye çekilişi falan beklerken , konferans başında dağıtılan POSTGRESQL t-shirtlerinden birine her konuşmacının imzasını attırmış ve açık artırmaya sundu.Fiyatlar verilirken artık son fiyat verildi kimseden ses yok.

Ben de tam 9 saat konferans dinlemenin verdiği yorgunlukla şöyle geriye doğru bi’ yaslanıp esneme açma germe hareketi yapıyodum ki , benim fiyat verdiğimi sandı Devrim Gündüz.EVET! dedi ve “Yok yok bi’ yanlış anlaşılma oldu :)” diyip konuyu kapattım:)

Adres :  http://pgday.postgresql.org.tr

Twitter der gibisiniz? E alın :  https://twitter.com/#!/PGDayTR