SQL INJECTION. Mehmet TUNCER.

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "SQL INJECTION. Mehmet TUNCER."

Transkript

1 SQL INJECTION Mehmet TUNCER

2 İÇİNDEKİLER SQL Injection Saldırılarına Giriş 3 SQL temelleri 3 Web Uygulaması İçinde SQL Sorguları 5 Hassas Dinamik Sorgular (Vulnerable Dynamic Queries) 6 SQL injection Ne Kadar Tehlikelidir? 7 SQLi Saldırı Sınıflandırması 7 In-Band SQLi 8 Error-based SQLi 8 Blind SQLi 9 SQLi Bulma 9 Basit SQLi Senaryoları 10 Boolean Tabanlı Tespit 11 Boolean Tabanlı Tespit Örneği 12 In-Band SQLi Sızma 13 In-Band Tabanlı Tespit Örneği 14 Error-Based SQLi Sızma 15 Error-Based Tabanlı Tespit Örneği 16 Blind SQLi Sızma 17 Blind SQLi Tabanlı Tespit Örneği 17 Kaynaklar 19 Online Çalışabileceğiniz Vuln Web Siteleri 19

3 1 SQL Injection Saldırılarına Giriş SQL Injection saldırısı, web uygulamalarının SQL sorgularına SQL komutları enjekte edilmesi olarak tanımlanabilir. Başarılı bir SQL injection saldırısı kötü niyetli bir programcının bir web uygulamasının veri tabanına ulaşıp onu yönetebilmesine imkan verir. Karmaşık web uygulamaları genellikle bilgileri, kullanıcı istatistiklerini ve kimlik bilgilerini depolamak için veri tabanı kullanır. CMS ler basit kişisel web sayfaları ile birlikte MySQL, SQL Server, Oracle, PostgreSQL ve diğer veri tabanlarına bağlanabilir. Sistem operatörleri, programcılar, uygulamalar ve web uygulamaları veri tabanlarıyla etkileşim kurmak için SQL kullanır. 1.1 SQL temelleri Bir saldırıyı nasıl yapacağımızı öğrenmeden önce bilmemiz gereken bazı SQL temelleri aşağıdadır: SQL deyimleri sözdizimi Bir sorgu nasıl yapılır İki sorgunun sonuçları nasıl birleştirilir? DINSTINCT ve ALL operators Yorumlar nasıl çalışır? Bir SQL sorgusu aşağıdaki gibi gözükmektedir; Select username, control FROM users WHERE id=1; Yukarıdaki sorgumuz users tablosundaki id değeri 1 olan üyenin username ve control değerlerini çekmemize yardımcı olmaktadır.

4 UNION iki veya daha fazla sorgunun çıktısını tek seferde görmek için kullanılır. Select username, control FROM users UNION SELECT log_name, log_date FROM userlog Bir tabloda birden fazla tekrar eden kayıtları tek sonuç da görmek için kullanılır. SELECT DISTINCT city FROM users SQL komutlarında yazılan sorguya ait sorgunun istediğimiz yerine hatırlatıcı yazılar yazmak için kullanılır. Select username FROM users; # this is a comment Select username FROM users; -- this is a comment Select username FROM users; /* this is a comment */ Dokümanda ki örneklemeler aşağıda bulunan örnek tablolar üzerinden yapılacaktır. Aşağıda bulunan iki sorgu aynı sonucu sağlamaktadır. SELECT username FROM users WHERE id = 1 ; SELECT username FROM users WHERE username = Mehmet ; Yukarıdaki yazılmış olan SQL sorguların çıktısı Mehmet olacaktır. Bu, iki SELECT ifadesi arasındaki bir UNION örneğidir: SELECT username, control FROM users WHERE id = 1 UNION SELECT log_name, log_date FROM userlog; Yukarıdaki yazılmış olan SQL sorguların çıktısı;

5 1.2 Web Uygulaması İçinde SQL Sorguları Bir önceki örnek, veri tabanını direk belli bir konsoldan incelerken SQL sorgusunun nasıl kullanıldığını göstermektedir. Aynı işlemi web uygulaması içinde yapabilmek için, web uygulamasının: Veri tabanına bağlanması, Veri tabanını sorgulaması, Sonuçları alıp, daha sonra uygulamanın amacına göre kullanması gerekir. Aşağıda bulunan kod PHP ile veri tabanına bağlanma ve SQL sorgusu çalıştırma örneğidir. <?php $host = ; $user = root ; $pass = toor ; $database = example ; $mysqli = new mysqli($host,$user,$pass,$database); $mysqli->select_db($database); $Query=$mysqli->query( Select username, control FROM users WHERE id=1 UNION SELECT log_name, log_date FROM userlog ); $result = $Query->fetch_object(); echo $result;?> new mysqli (); -> Belirttiğimiz veritabanına bağlantı sağlamak için kullanılmaktadır. select_db(); -> Veritabanı sorguları için varsayılan veritabanını seçer. query(); -> Belirttiğimiz veritabanında sorğu yapmamızı sağlamaktadır. fetch_object(); -> Bir sonuç kümesinin geçerli sırasını bir nesne olarak döndürür.

6 1.3 Hassas Dinamik Sorgular (Vulnerable Dynamic Queries) Çoğu zaman sorgular statik olmasada, kullanıcı girdileri tarafından dinamik olarak oluşturulurlar. Burada Hassas Dinamik Sorgu (Vulnerable Dynamic Queries) örnekleri bulabilirsiniz: <?php $host = ; $user = root ; $pass = toor ; $database = example ; $id=$_get[ id ]; $mysqli = new mysqli($host,$user,$pass,$database); $mysqli->select_db($database); $Query=$mysqli->query( Select username, control FROM users WHERE id= $id ; ); $result = $Query->fetch_object(); echo $result;?> Önceki örnek, bir sorgu oluşturmak için kullanıcı tarafından sağlanan girdiyi kullanan bazı kodları göstermektedir (GET request öğesinin id parametresi). Kod daha sonra sorguyu veri tabanına gönderir. Bu davranış çok tehlikelidir, çünkü kötü niyetli bir kullanıcı veri tabanı etkileşiminin kontrolünü ele almak için sorgu yapısını kullanabilir. Nasıl olduğunu görelim! Dinamik sorgu: SELECT username, control FROM users WHERE id= $id ; Aşağıdaki gibi $id değerlerini bekler; 1 SELECT username, control FROM users WHERE id='1'; Örnek SELECT username, control FROM users WHERE id ='Example'; İdd3 SELECT username, control FROM users WHERE id ='idd3'; Ancak, bir saldırgan aslında gerçekte bir $id değeri elde ederse sorguyu değiştir. Aşağıdaki gibi: OR a = a Sonra sorgu şöyle olur ; SELECT username, control FROM users WHERE id= OR a = a ;;

7 Bu, veri tabanının iki koşulu kontrol ederek öğeleri seçmesini söyler: id boş olmalı (id='') OR her zaman doğru bir koşul ('a'='a') İlk koşul karşılanmazken, SQL motoru OR'ın ikinci durumunu dikkate alacaktır. Bu ikinci koşul her zaman gerçek bir koşul olarak üretilmiştir. Başka bir deyişle, bu veri tabanı users tablosundaki tüm öğeleri seçmek için söyler! Veri tabanı yönetimi sistemleri ile ilgili birkaç derin bilgiyle, saldırgan bütün veri tabanına web uygulaması kullanarak ulaşabilir. 1.4 SQL injection Ne Kadar Tehlikelidir? SQL Injection güvenlik açıklarının bulma ve kullanma sürecine daha derinlemesine girmeden önce, bu güvenlik açıklarının başarılı bir şekilde kullanıldıklarında nereye yönlendirebileceklerini anlamanız gerekir. İlk olarak, web uygulamasının kullandığı DBMS'ye (MySQL, SQL Server...) göre, saldırganın veritabanının yalnızca manipülasyonundan çok daha ileriye giden bir dizi eylem gerçekleştirebileceğini anlamalıyız. Bir saldırgan dosya sistemini okuyabilir, OS komutlarını çalıştırabilir, kabuk (Shell) kurabilir, uzak ağa erişebilir ve temel olarak tüm altyapıya sahip olabilir. Ancak bu her zaman geçerli değildir, daha sonra DBMS'nin ne kadar güçlü olduğunu, SQL'in ne kadar ilerlemiş olduğunu ve bir saldırgandan sonra bir saldırganın yeteneklerinin ne kadar büyük olduğunu göreceğiz. Gizli verileri (kullanıcı kimlik bilgileri, SSN'ler, kredi kartları ve bir şirkete ait hassas bilgilerin ne olduğu, bir şirket veya bir kişi veri tabanında saklanabilir) saklayan bir veri tabanına erişmenin bir web uygulamasına yapılabilecek en tehlikeli saldırı şekli olduğunu unutmayın. Web uygulamalarını etkileyebilecek tüm güvenlik açıkları arasında SQL enjeksiyonları, en hızlı sonuçları elde etmeleri nedeniyle bilgisayar korsanları tarafından ilk kontrol edilen açıklardır. 1.5 SQLi Saldırı Sınıflandırması SQLi hakkında çok fazla literatür var ve her biri farklı yönlere dayanan birçok farklı sınıflandırma türü vardır: Saldırının kapsamı, Açık bulma vektörü, Saldırının kaynağı. Bu yazıda bu konulara deyineceğiz : In-band SQLi, Error-based SQLi, Blind SQLi.

8 Bu sınıflandırmalar, saldırıyı gerçekleştirmek için kullanılan açık bulma yöntemine dayanmaktadır. Tespit ve açık bulma aşamalarının açıklamasını daha iyi takip etmenize yardımcı olacağından emin olun. Onu ayrıntılı olarak görelim! In-Band SQLi In-band SQLi SQL kodunu (yani, web uygulaması tarafından oluşturulan sayfalar) enjekte etmek için kullanılan aynı kanalı kullanır. İn-band saldırı esnasında aldırı sırasında, penetrasyon tester, istenen uygulama için web uygulamasından bilgi almanın bir yolunu bulur Error-based SQLi Error-Based SQL enjeksiyon saldırısı sırasında, penetrasyon tester, DBMS'yi bir hata mesajı vermesi için zorlamaya çalışır ve daha sonra veri sızdırılmasını gerçekleştirmek için bu bilgiyi kullanır.

9 Error-based SQLi enjeksiyondan yararlanmak için, penetrasyon testerin gelişmiş DBMS özelliklerini kullanması gerekir. Hatalar ya web uygulaması çıktısı yoluyla ya da diğer yollarla otomatik raporlar ya da uyarı e-postaları yoluyla gönderilebilir Blind SQLi Blind SQLi enjeksiyonuna karşı savunmasız bir web uygulaması, çıktıdaki enjeksiyonun sonuçlarını yansıtmaz. Bu durumda, penetrasyon tester, güvenlik açığından yararlanmak için bir interference yöntemi bulmalıdır. İnterference çoğunlukla doğru / yanlış koşullar kullanılarak gerçekleştirilir. Penetration tester, web uygulama davranışını inceleyerek bir koşulun doğru veya yanlış olup olmadığını anlayabilir. Bu modülün sonraki bölümlerinde çeşitli SQLi güvenlik açıklarını nasıl algılayacağınızı ve kullanacağımızı göreceğiz. 2 SQLi Bulma Bir SQL enjeksiyonundan yararlanmak için, önce enjeksiyon noktasının nerede olduğunu bulmanız gerekir, o zaman hedef dinamik sorgunuzun kontrolünü ele geçirmek için bir payload oluşturabilirsiniz. Bir web uygulamasında SQL enjeksiyonları bulmanın en kolay yolu, SQL sorgusunun sözdizimsel olarak geçersiz olmasına neden olduğu ve bu nedenle web uygulamasını bir hata döndürmesi için zorladığı bilinen karakterlerle girişlerini araştırmaktır. Not: Bir web uygulamasının tüm girdileri, SQL sorguları oluşturmak için kullanılmaz. Bilgi Toplama modülünde, farklı giriş parametrelerini sınıflandırmanızı ve veri tabanı veri alma ve manipülasyon için

10 kullanılanları kaydetmenizi tavsiye ederiz. Aşağıdaki sayfalarda, SQLi açıklarını tanımlamak ve kullanmak için toplanan bilgileri nasıl kullanacağımızı göreceğiz. Input parametreleri aşağıdakiler aracılığıyla gerçekleştirilir: GET ve POST istekleri, HEADERS ve COOKIES (Yani, verilerin müşteriden alındığı tüm kanalları kontrol etmeliyiz). Aşağıdaki örnekler, basit bir şekilde, girdilerin doğrudan URL'den alındığı senaryoları (GET yöntemi ile) inceleyecektir. Aynı teknikler diğer kanallar için de geçerlidir. 2.1 Basit SQLi Senaryoları SQL enjeksiyon sürecini açıklamak amacıyla küçük bir savunmasız ürün tanıtım scripti oluşturduk. test.php, ürün özelliklerini veri tabanından okuyan ve bunları sayfa üzerinde basan bir id parametresidir. Id parametresinin bir integer olması beklenir. Id = 1 GET parametresini göndermek, uygulamanın doğru davrandığını gösterir.

11 Ancak bir virgül gönderilirse, uygulama bir hata vermeye zorlanmaktadır. SQL enjeksiyonu için bir input test etmek, aşağıdakileri enjekte etmeye çalışmak demektir: String terminators: ' ve " SQL komutları: SELECT, UNION ve diğerleri, SQL yorumları: # or -- Web uygulamasının garip davranmaya başlayıp başlamadığını kontrol edin. Her seferinde bir enjeksiyon yapın! Aksi halde hangi enjeksiyon vektörünün başarılı olduğunu anlayamayacaksınız. 2.2 Boolean Tabanlı Tespit Gizlilik yoluyla güvenlik, güvenliği sağlamak için tasarım, uygulama veya yapılandırma gizliliğinin kullanılmasıdır. Aşağıdaki sayfalarda, bu yaklaşımın SQLi saldırılarına karşı savunmasız bir uygulamayı nasıl savunamadığını göreceksiniz. Bir web uygulaması, output hataları göstermiyorsa, Boolen tabanlı tespit tekniği kullanarak SQL enjeksiyonu test etmek hala mümkündür. Bu sürecin ardındaki fikir basit ancak zekice: Web uygulama sorgularını True / False koşullarına dönüştüren faydalı payloadlar oluşturmak. Daha sonra, penetration tester, uygulama davranışlarının farklı Doğru / Yanlış koşullarıyla nasıl değiştiğine bakarak sorgularından sonuçlar çıkarabilir.

12 2.2.1 Boolean Tabanlı Tespit Örneği Boolean tabanlı SQL injection tespit etmek için kendi oluşturduğumuz ürün tanıtım script inde ki zafiyeti keşfetip exploit etmeye çalışacağız. Her zamanki gibi, web sitemizi SQL ile ayrılmış karakterlere göndererek enjeksiyon noktasını tespit etmeye çalışıyoruz. Bu örnekte bir string sonlandırma karakteri kullanılıyor. Web uygulaması herhangi bir görüntü göstermiyor. Ne yazık ki, uygulama, mevcut olmayan bir görüntüyü istediğimizde aynı şekilde davranır. Örneğin, id = 'u GET parametresi olarak iletirsek: Sayfanın arkasındaki sorguda bir şey olduğundan şüpheleniyoruz. SELECT * FROM <Tablo> WHERE id= GETID ; Yani, sorguyu dönüştürmek için 'u veya '1' = '1'i enjekte etmeyi deneyebiliriz: SELECT * FROM <Tablo> WHERE id= or 1 = 1 ;; Temel olarak her zaman doğru olan bir durumdur!

13 Web uygulamasında payloadı test etmek bize bir output verir! Her zaman sahte bir durumu da test etmemiz gerekir. Diğer always, true" ve always false koşullarını da test etmek mümkündür: 999' and 'exp'='exp 999' and 'exp'='expexp 999' and 'merhaba'='merhaba 999' and 'merhaba'='exit exp' or '1'='1 exp' or '1'='2 Test etmek için ya SQLMap yada manuel olarak yapabilirsiniz. 2.3 In-Band SQLi Sızma In-Band SQL enjeksiyon teknikleri, UNION SQL komutunun kullanımı sayesinde veri tabanından verilerin çok güçlü bir şekilde alınmasını sağlar. Bu nedenle, In-Band enjeksiyonlar da UNION tabanlı SQL enjeksiyonları olarak bilinir. Bu tür bir saldırı, bir penetration tester ın, veri tabanı içeriğini, tablo şemalarını ve gerçek verileri biçiminde, veri tabanı içeriğini çıkarmasını sağlar. Bu konunun ilk bölümünde gördüğümüz gibi, UNION ifadesi iki veya daha fazla SELECT ifadesinin sonuç kümesini birleştirir.

14 2.3.1 In-Band Tabanlı Tespit Örneği Bazı senaryoları inceleyerek In-Band SQL enjeksiyonundan nasıl yararlanacağımızı göreceğiz. İlk senaryoda veri tabanı iki tablo içerir: Kredi Kartları ve Kullanıcılar. Usersid sütunu, Kullanıcılar tablosunun yabancı anahtarıdır (Foreign Key). Bu örnekte Mehmet'in kredi kartı numarası , Root ise numaralı kredi kartına sahiptir. Web uygulaması kullanıcı isimlerini görüntülemek için aşağıdaki kodu kullanır: <?php $exp=$mysqli->query( Select username FROM users WHERE id=.$_get[ id ]. ; ); $result = mysql_fetch_assoc(exp); echo $result[ username ];?> Yukarıdaki kodu incelediğimiz zaman SQL injection maruz kalan kod kısmını görmüş oluyoruz. Artık bir kullanıcı adıyla ilişkili kredi kartını almak için SQLi güvenlik açığından yararlanabiliriz. Bizim payload umuz: 9999 UNION ALL SELECT c_num FROM card WHERE usersid=1 Payload, web uygulamasında sorguyu aşağıdakilere dönüştürür: SELECT username FROM users WHERE id=9999 UNION ALL SELECT c_num FROM card WHERE usersid=1 Id = 9999 olan hiçbir kullanıcı olmadığından web uygulaması, çıkışında ilk kullanıcının c_num'unu gösterecektir! Artık, tarayıcıyı ya da farklı bir araç kullanarak bir GET isteği göndererek payload u web uygulamasına gönderebiliriz: Web uygulaması kullanıcı isimlerini görüntülemek için aşağıdaki kodu kullanır:

15 ALL operatörün kullanımını not edin. Orijinal web uygulama sorgusunda bir nihai DISTINCT yan tümcesinin etkisini önlemek için kullanılabilir. SQL Injection güvenlik açığından yararlanırken kullanacağınız bir başka iyi hile de yorumları kullanmaktır. Aşağıdaki gibi: 9999 UNION ALL SELECT c_num FROM card WHERE usersid=1; -- - Önceki saldırıda not edilmesi gereken pek çok şey var: İkinci SELECT ifadesinin alan türleri, ilk ifadedeki ile eşleşmelidir. İkinci SELECT ifadesindeki alanların sayısı, ilk ifadedeki alanların sayısıyla eşleşmelidir. Saldırıyı başarılı bir şekilde gerçekleştirmek için, veri tabanının yapısını tablo ve sütun isimlerini bilmeliyiz. İlk iki sorunu çözmek için, SELECT ifadesinde hangi sütunların kullanıldığını bulmak için gelişmiş bir teknik kullanabiliriz. Sütun sayısını ve türlerini arıyoruz. Veri tabanı yapısını daha sonra nasıl tersine çevireceğimizi göreceğiz 2.4 Error-Based SQLi Sızma Error-Based SQL enjeksiyonları, veri tabanından veri almanın başka bir yoludur. Doğrudan veri istemedikleri halde, bir hata tetiklemek için bazı gelişmiş DBMS işlevlerini kullanırlar. Hata mesajı, penetration tester ın hedeflediği bilgileri içermektedir. Hata mesajının çoğu, web uygulama çıktısına yansıtılır, ancak bir e-posta mesajına gömülebilir veya bir log dosyasına da eklenebilir. Bu web uygulamasının nasıl yapılandırıldığına bağlıdır. Error-Based SQL enjeksiyonu, bir veri tabanından veri almanın en hızlı yollarından biridir. Oracle, PostgreSQL ve MYSQL Server gibi DBMS'lerde kullanılabilir. Bazı DBMS'ler hata mesajlarında verilen bilgiler açısından çok cömerttir. Önceki örneklerin bazılarında, olumlu veya olumsuz koşulları eşleştirmek için hatalar kullandık. Bu kez, veri tabanı isimlerini, şemalarını ve verilerini hatalardan alırız. Bazı MS SQL Server'a özgü payload ları göreceğiz ve daha sonra diğer DBMS'ler için bazı saldırı vektörlerini tanıtacağız. Temel ilke, herhangi bir DBMS'de aynıdır.

16 2.4.1 Error-Based Tabanlı Tespit Örneği MS SQL Server, hata iletilerindeki veri tabanı nesnelerinin adını gösterir. Pratikte görelim! Konuyla ilgili olarak güvenlik sebebiyle sadece CAST tekniğini kullanarak versiyon öğrenme kullanıcı adı ve database adlarını öğrenmeyi göstereceğim. Oluşturduğumuz test.aspx sayfasında denemelerimizi yapiyoruz. Test.aspx sayfamızda POST veya GET yaptığımız zaman. Örnek olarak ;

17 Yukarıdaki örnek payload daki gibi payload ımızı genişletip devam edebiliriz. Örnek olarak veritabanlarını bulabiliriz. db_name() kullanarak sadece tek veri tabanını görebiliriz fakat db_name(1) db_name(2) olarak arttırma yapıldığında tüm sistemdeki veri tabanlarını görebilirsiniz or 1 in (SELECT TOP1 CAST(db_name() as varchar(4096))) Aynı şekilde sistem üzerinde bulunan kullanıcıları da bulabiliriz or 1 in (SELECT TOP1 CAST(user_name() as varchar(4096)))-- CAST tekniği özet olarak anlatılmak istenirse bu şekilde yapılmaktadır. Çok fazla kullanılma yönetimi mevcut olup çok derin bir konudur. 2.5 Blind SQLi Sızma Blind SQLi sızma, veri tabanı şemalarını ve verilerini elde etmek için kullanabileceğiniz bir sızma yöntemidir. Web uygulaması in-band veya error-based SQL enjeksiyonları yoluyla kullanılamazsa, ancak yine de savunmasız durumda ise, Blind SQLi ye güvenebilirsiniz. Bu, blind web enjeksiyonlarının yalnızca web uygulamasının çıktısında hataları yazdırmaması durumunda kullanılabilecekleri anlamına gelmez. Basitçe, bir Boole tabanlı SQLi payload işlerken, bir sorguyu, durumunu web uygulaması çıktısına yansıtan bir True/False durumunda dönüştürmek istediğiniz anlamına gelir. Aşağıdaki sayfalarda, hem bir uygulamada hem de hataları çıktı olarak alınmayan farklı bir uygulamada blind SQLi örneğini göreceğiz Blind SQLi Tabanlı Tespit Örneği Bu örnekte, id savunmasız bir parametredir.

18 Dinamik sorgu yapısını tahmin edebiliriz: SELECT * FROM <Table> WHERE id='<id parameter>'; Sorgu muhtemelen aşağıdaki gibi görünüyor: SELECT * FROM images WHERE id='<id parameter>'; Bu yüzden her zaman True koşulunu tetiklemeye ve neler olduğunu görmeye çalışabiliriz. 'OR' 1 '=' 1'i kullanabiliriz ve uygulamanın bir resim gösterdiğini görürüz. Öte yandan, her zaman false koşulu: 'OR' 1 '=' 11 Veri tabanında hiçbir şey bulamıyor: görüntü yok ve görüntü sayacı yok. Yani bu açıkça bir istismar edilebilir bir SQL enjeksiyon noktasıdır.

19 Bir kez penetration tester lar, bir koşulun True ya da False olduğunu söyleyebilmenin bir yolunu bulduklarında, veri tabanına aşağıdaki gibi basit True / False soruları sorabilirler: 'a' kullanıcı adının ilk harfi mi? Bu veri tabanı üç tablo içeriyor mu? Buna basit başka sorular eklenebilir. Bu yöntemi kullanarak, bir penetration tester veri tabanını serbestçe sorgulayabilir. Yararlanılan Kaynaklar; Online Çalışabileceğiniz Vuln Web Siteleri - Acunetix ASP.Net - Acunetix PHP - Crack Me Bank - Zero Bank - Altoro Mutual

Her Yönüyle SQL Enjeksiyonu. OWASP-Türkiye Bünyamin Demir

Her Yönüyle SQL Enjeksiyonu. OWASP-Türkiye Bünyamin Demir Her Yönüyle SQL Enjeksiyonu OWASP-Türkiye Bünyamin Demir Bünyamin Demir ( @bunyamindemir ) OWASP Türkiye Bölüm Lideri Founder & CTO @ Enforsec Ltd. Sızma Testleri Uzmanı Web, Mobil, Network, SCADA, Wireless,

Detaylı

Bölüm 10: PHP ile Veritabanı Uygulamaları

Bölüm 10: PHP ile Veritabanı Uygulamaları Bölüm 10: PHP ile Veritabanı Uygulamaları -231- Öğr.Gör. Serkan DİŞLİTAŞ 10.1. PHP PHP, platformdan bağımsız sunucu taraflı çalışan betik bir web programlama dilidir. PHP programlama dili ile MySQL, MSSQL,

Detaylı

BLIND SQL INJECTION SALDIRILARI

BLIND SQL INJECTION SALDIRILARI SALDIRILARI Emre Karadeniz OSCP İçindekiler BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri I. Blind SQL Injection (Content Based)... 2 II. Blind SQL Injection (Content-Based) Örneği... 3 III. Blind

Detaylı

Sqlmap pyhton dili yazılarak geliştirilmiş Sql injection için testerlara son derece yardımcı olan bir araçtır.

Sqlmap pyhton dili yazılarak geliştirilmiş Sql injection için testerlara son derece yardımcı olan bir araçtır. SqlMap Kullanımı Sqlmap pyhton dili yazılarak geliştirilmiş Sql injection için testerlara son derece yardımcı olan bir araçtır. Temel olarak yaptığı işlem sizin belirtmiş olduğunuz parametrelere göre hedef

Detaylı

Web Uygulama Pentest Eğitimi

Web Uygulama Pentest Eğitimi Web Uygulama Pentest Eğitimi Konu: Girdi Denetimi @2014 Örnek Eğitim Notu bilgi@bga.com.tr Girdi Denetimi Uygulama kullanmadan önce bütün güvensiz verilerin doğru bir şekilde denetlenmesidir. Bir çok saldırı

Detaylı

Veri Tabanı Yönetim Sistemleri Bölüm - 3

Veri Tabanı Yönetim Sistemleri Bölüm - 3 Veri Tabanı Yönetim Sistemleri Bölüm - 3 İçerik Web Tabanlı Veri Tabanı Sistemleri.! MySQL.! PhpMyAdmin.! Web tabanlı bir veritabanı tasarımı. R. Orçun Madran!2 Web Tabanlı Veritabanı Yönetim Sistemleri

Detaylı

05 - Veritabanı Sızma Testleri

05 - Veritabanı Sızma Testleri BGM 531 - Sızma Testleri ve Güvenlik Denetlemeleri Bilgi Güvenliği Mühendisliği Yüksek Lisans Programı Dr. Ferhat Özgür Çatak ozgur.catak@tubitak.gov.tr İstanbul Şehir Üniversitesi 2018 - Güz İçindekiler

Detaylı

SQL e Giriş. Uzm. Murat YAZICI

SQL e Giriş. Uzm. Murat YAZICI SQL e Giriş Uzm. Murat YAZICI SQL (Structured Query Language) - SQL Türkçe de Yapısal Sorgulama Dili anlamına gelmektedir ve ilişkisel veritabanlarında çok geniş bir kullanım alanına sahiptir. - SQL ile

Detaylı

State Yönetimi. Bir web sayfası ile sunucu arasındaki etkileşim ;

State Yönetimi. Bir web sayfası ile sunucu arasındaki etkileşim ; State Yönetimi State Yönetimi Web Page sınıflarının nesneleri, sayfa sunucu tarafına her defasında gönderildiğinde oluşturulur. Böyle bir durum sayfada kullanıcının girmiş olduğu ve sayfa ile ilişkili

Detaylı

Veritabanı. Ders 2 VERİTABANI

Veritabanı. Ders 2 VERİTABANI Veritabanı Veritabanı Nedir? Birbiri ile ilişkili verilerin bir arada uzun süreli bulundurulmasıdır. Veritabanı bazen Veritabanı Yönetim sistemi veya Veritabanı Sistemi yerine de kullanılır. Gerçek dünyanın

Detaylı

İNTERNET PROGRAMCILIĞI 2 10. HAFTA MYSQL - PHPMYADMIN. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Mysql Nedir.

İNTERNET PROGRAMCILIĞI 2 10. HAFTA MYSQL - PHPMYADMIN. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Mysql Nedir. İNTERNET PROGRAMCILIĞI 2 10. HAFTA İçindekiler MYSQL - PHPMYADMIN Mysql Nedir PhpMyAdmin Nedir PhpMyAdmin Arayüzü Hedefler Mysql' in görevini söyleyebilir PhpMyAdmin' in kullanım amacını söyler Hazırlayan

Detaylı

Veri Tabanı Tasarım ve Yönetimi

Veri Tabanı Tasarım ve Yönetimi SAKARYA ÜNİVERSİTESİ Veri Tabanı Tasarım ve Yönetimi Hafta 5 Prof. Dr. Ümit KOCABIÇAK Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi ne aittir. "Uzaktan Öğretim" tekniğine uygun

Detaylı

İnternet Programcılığı

İnternet Programcılığı 1 PHP le Ver tabanı İşlemler Yaptığımız web sitelerinin daha kullanışlı olması için veritabanı sistemleri ile bağlantı kurup ihtiyaca göre verileri okuyup yazmasını isteriz. 1.1 Veritabanı Nedir? Veritabanı

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Fonksiyon Tanımlamak Java da Döngüler Java da Şart İfadeleri Uygulamalar Java da Fonksiyon Tanımlamak JAVA DA FONKSİYON TANIMLAMAK 4 Fonksiyonlar;

Detaylı

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır.

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır. SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır. Bu dersimizde biz Microsoft SQL Server veritabanı sistemini kullanmayı öğreneceğiz. SQL Nedir? SQL Structured Query Language

Detaylı

Kepware Veritabanı Ürünleri. Teknolojiye Genel Bir Bakış

Kepware Veritabanı Ürünleri. Teknolojiye Genel Bir Bakış Kepware Veritabanı Ürünleri Teknolojiye Genel Bir Bakış Gündem Veritabanı Client API teknolojisinin gözden geçirilmesi ODBC istemci sürücüsü- bir KEPServerEX Plug-In Haberleşme Sürücüsüdür. DataLogger-

Detaylı

Veritabanı. SQL (Structured Query Language)

Veritabanı. SQL (Structured Query Language) Veritabanı SQL (Structured Query Language) SQL (Structured Query Language) SQL, ilişkisel veritabanlarındaki bilgileri sorgulamak için kullanılan dildir. SQL, bütün kullanıcıların ve uygulamaların veritabanına

Detaylı

Veritabanı Sızma Testleri Türk Standardları Enstitüsü Yazılım Test ve Belgelendirme Dairesi Başkanlığı

Veritabanı Sızma Testleri Türk Standardları Enstitüsü Yazılım Test ve Belgelendirme Dairesi Başkanlığı Veritabanı Sızma Testleri Türk Standardları Enstitüsü Yazılım Test ve Belgelendirme Dairesi Başkanlığı Tarih 1 Veritabanı Sızma Testleri Veritabanı sistemleri kritik sistemlerdir. Testler sonucunda elde

Detaylı

VERİ GÜVENLİĞİ. Web Uygulamaları Güvenliği. Özer Çelik Matematik-Bilgisayar Bölümü

VERİ GÜVENLİĞİ. Web Uygulamaları Güvenliği. Özer Çelik Matematik-Bilgisayar Bölümü VERİ GÜVENLİĞİ Web Uygulamaları Güvenliği Özer Çelik Matematik-Bilgisayar Bölümü Http nedir? HTTP (İngilizce Hypertext Transfer Protocol, Türkçe Hiper Metin Transfer Protokolü) bir kaynaktan dağıtılan

Detaylı

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım.

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım. DAO İLE SQL KOMUTLARI Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım. SQL-1 SELECT En basit SQL cümleciği oluşturmak için SELECT sözcüğü

Detaylı

LINQ (Temel Kavramlar)

LINQ (Temel Kavramlar) LINQ (Temel Kavramlar) Ele Alınacak Başlıklar Temel Kavramlar Lambda İfadeleri (*Lambda Expressions) Query İfadeleri (*Query Expressions) Tür Çıkarsama (*Type Inference) Anonim Türler (*Anonymous Types)

Detaylı

Bilgisayar Uygulamaları. MySql

Bilgisayar Uygulamaları. MySql MySql MySql,; Oracle, Progress, MsSql, PostgreSql gibi veri tabanı programıdır. Kullanılan dil SQL (Structured Query Language) yapısal sorgulama dilidir. Lisansı GNU General Public License olarak bilinen

Detaylı

Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir?

Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir? 1) I. Tablo Oluşturma II. Veri Güncelleme III. Veri Silme IV. Veri Ekleme V. Tablo Silme Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir? a) I, IV ve V b) II, III ve IV

Detaylı

VERİ TABANI YÖNETİM SİSTEMLERİ I

VERİ TABANI YÖNETİM SİSTEMLERİ I BÖLÜM 11 11. SQL de JOIN (BİRLEŞTİRME) İŞLEMİ 11.1. JOIN (Birleştirme) İşlemi Veri tabanı kayıtları oluşturulurken bütün bilgiler bir tabloda değil de, birkaç tablo üzerinde tutulur. Bu dataların daha

Detaylı

T.C. SAKARYA ÜNİVERSİTESİ ADAPAZARI MESLEK YÜKSEKOKULU WEB TABANLI VERİ TABANI UYGULAMASI YÖNLENDİRİLMİŞ ÇALIŞMA. Enes Al 1027.

T.C. SAKARYA ÜNİVERSİTESİ ADAPAZARI MESLEK YÜKSEKOKULU WEB TABANLI VERİ TABANI UYGULAMASI YÖNLENDİRİLMİŞ ÇALIŞMA. Enes Al 1027. T.C. SAKARYA ÜNİVERSİTESİ ADAPAZARI MESLEK YÜKSEKOKULU WEB TABANLI VERİ TABANI UYGULAMASI YÖNLENDİRİLMİŞ ÇALIŞMA Enes Al 1027.32121 BİLGİSAYAR PROGRAMCILIĞI DANIŞMAN: ÖĞR. GÖR. FERDA BOZKURT TEMMUZ 2012

Detaylı

VERİ TABANI UYGULAMALARI

VERİ TABANI UYGULAMALARI VERİ TABANI UYGULAMALARI VERİ TABANI NEDİR? Bir konuyla ilgili çok sayıda verinin tutulmasına, depolanmasına ve belli bir mantık içerisinde gruplara ayrılmasına veri tabanı denir. Veri tabanı programları;

Detaylı

Veritabanı Tasarımı. Kullanıcı Erişimini Kontrol Etme

Veritabanı Tasarımı. Kullanıcı Erişimini Kontrol Etme Veritabanı Tasarımı Kullanıcı Erişimini Kontrol Etme Konular Nesne ayrıcalıkları ve sistem ayrıcalıkları arasındaki farkı karşılaştırma Bir kullanıcının bir veritabanınaerişimini etkinleştirmek için gerekli

Detaylı

SAKLI YORDAM (Stored Procedure) Sibel Somyürek

SAKLI YORDAM (Stored Procedure) Sibel Somyürek SAKLI YORDAM (Stored Procedure) Sibel Somyürek Saklı Yordam Saklı yordamlar veritabanı kataloğunda saklanan SQL kod bloklarının tanımlanmasıdır. Mesela, iki sayı alıp bunların toplamlarını hesaplayan bir

Detaylı

SQL (Structured Query Language)

SQL (Structured Query Language) SQL (Structured Query Language) Genel SQL SQL çok yüksek seviyeli bir dildir. Biraz ingilizce bilgisi gerektirir. Programlama dillerine göre öğrenilmesi çok daha kolaydır. Çünkü programlama dillerindeki

Detaylı

Veritabanına Giriş. Oğuzhan Ceylan. 19 Eylül 2011

Veritabanına Giriş. Oğuzhan Ceylan. 19 Eylül 2011 Veritabanına Giriş Oğuzhan Ceylan 19 Eylül 2011 Outline Veritabanı MYSQL Mysql Sorgu Komutları Bir veritabanı yaratmak ve kullanmak Veritabanı Veritabanı Verittabanı hangi alanlarda kullanılıyor. Web sitesi

Detaylı

Veritabanı Tasarımı. Alt Sorgu Temelleri

Veritabanı Tasarımı. Alt Sorgu Temelleri Veritabanı Tasarımı Alt Sorgu Temelleri Konular Verilerin elde edilmesi için alt sorguların tanımlanması ve açıklanması WHERE yantümcesinde tek satır alt sorgu oluşturulması ve çalıştırılması Tek satır

Detaylı

SQLMap ile CSRF Bypass İbrahim BALİÇ ibrahim@balicbilisim.com

SQLMap ile CSRF Bypass İbrahim BALİÇ ibrahim@balicbilisim.com SQLMap ile CSRF Bypass İbrahim BALİÇ ibrahim@balicbilisim.com Merhabalar, Birçok güvenlik araştırmacısı web uygulamaları için penetrasyon testleri yaparken, tespit ettikleri zafiyetleri exploit edebilmek

Detaylı

Google Hacking. Gelişmiş Google Operatörleri

Google Hacking. Gelişmiş Google Operatörleri Ön Söz Bilgisayar korsanları, önemli bilgiler içeren web uygulamalarına arama motorları sayesinde kolayca erişebiliyorlar. Hedeflenen anahtar kelimeler ile web sitelerinden önemli bilgiyi almak saniyeler

Detaylı

1. Hafta MS SQL Server 2008 Kurulum ve Tanıtımı BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: Kurulum:

1. Hafta MS SQL Server 2008 Kurulum ve Tanıtımı BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: Kurulum: Bu Derste Öğrenecekleriniz: 1- MS SQL Server 2008 Kurulumu ve Tanıtımı 2- Komut Kullanarak Veritabanı Oluşturma ve Silme 3- SQL Yazım Kuralları Kurulum: Sistem gereksinimleri: Desteklenen işletim sistemleri:

Detaylı

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ Java programlama dili, Java SUN bilgisayar şirketi tarafından 1991 yılında geliştiril Program bloklar halinde yazılır ve bloklar { } ile oluşturulur. Komutlar aynı satıra

Detaylı

Oracle da kullanılan veri tipleri:

Oracle da kullanılan veri tipleri: ORACLE A GİRİŞ Oracle ile SQL Server ı karşılaştıralım, 1 Oracle da veritabanı yerine kullanıcı oluşturulur. Kullanıcılar veritabanı gibi davranır. 2 Tablo oluşturma, yapısını değiştirme, silme kodları

Detaylı

Basit SQL Sorguları Veritabanından verilerin SELECT cümleleri ile alınması işlemine sorgulama denir.

Basit SQL Sorguları Veritabanından verilerin SELECT cümleleri ile alınması işlemine sorgulama denir. SQL SELECT CÜMLELERİ Oracle birçok kullanışlı ve güçlü özellikleri olan bir veritabanıdır. Bu özelliklerinin birçoğu SQL ile ilgilidir. VTYS lerinin çoğunluğunda veriler ile çalışmak için SQL kullanılmaktadır.

Detaylı

CSRF (XSRF, Cross Site Request Forgery Cross Site Reference Forgery ) Nedir? Nasıl Kullanılır? ve Nasıl Korunulur?

CSRF (XSRF, Cross Site Request Forgery Cross Site Reference Forgery ) Nedir? Nasıl Kullanılır? ve Nasıl Korunulur? CSRF (XSRF, Cross Site Request Forgery Cross Site Reference Forgery ) Nedir? Nasıl Kullanılır? ve Nasıl Korunulur? CSRF (XSRF, Cross Site Request Forgery Cross Site Reference Forgery ) Nedir? Başlamadan

Detaylı

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1 Öğr. Gör. Serkan AKSU http://www.serkanaksu.net http://www.serkanaksu.net/ 1 JavaScript JavaScript Nedir? Nestcape firması tarafından C dilinden esinlenerek yazılmış, Netscape Navigator 2.0 ile birlikte

Detaylı

Turquaz. Açık kodlu muhasebe yazılımı http://www.turquaz.com. Turquaz Proje Grubu

Turquaz. Açık kodlu muhasebe yazılımı http://www.turquaz.com. Turquaz Proje Grubu Turquaz Açık kodlu muhasebe yazılımı http://www.turquaz.com Turquaz Proje Grubu Konu Başlıkları 1. Turquaz Proje Grubu 2. Programın fikri 3. Geliştirme aşaması 4. Programın içeriği 5. Yapılacaklar 6. Dizayn

Detaylı

Veritabanı Tasarımı. SQL Deyimi Anatomisi

Veritabanı Tasarımı. SQL Deyimi Anatomisi Veritabanı Tasarımı SQL Deyimi Anatomisi Amaç Bu ders aşağıdaki hedefleri kapsamaktadır: Projeksiyon (projection), seçim (selection) ve birleştirme (join) ifadelerini doğru fonksiyonları/yetenekleri ile

Detaylı

Data Programming SQL Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Data Programming SQL Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı Data Programming SQL Language Elbistan Meslek Yüksek Okulu 2015 2016 Bahar Yarıyılı Öğr.Gör. Murat KEÇECĠOĞLU 15 Mar 2016 1 SQL deyimleri veritabanları üzerinde çeşitli işlemleri yerine getirirler. Veritabanından

Detaylı

Veritabanı Tasarımı. Sütun Değerlerini Güncelleme ve Satırları Silme

Veritabanı Tasarımı. Sütun Değerlerini Güncelleme ve Satırları Silme Veritabanı Tasarımı Sütun Değerlerini Güncelleme ve Satırları Silme Konular UPDATE komutunu oluşturmak ve çalıştırmak DELETE komutunu oluşturmak ve çalıştırmak Tabloda güncelleme yapmak ya da veri silmek

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java Kodlarına Yorum Satırı Eklemek Java Paket Kavramı Java Kütüphane Kavramı Konsoldan Veri Çıkışı ve JOPtionPane Kütüphanesi JOptionPane Kütüphanesi Kullanarak

Detaylı

MOBİL UYGULAMA GELİŞTİRME

MOBİL UYGULAMA GELİŞTİRME MOBİL UYGULAMA GELİŞTİRME PELİN YILDIRIM FATMA BOZYİĞİT YZM 3214 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Bu Derste Veri Saklama 2 Veri Saklama Veri Saklama her appnin ihtiyaci

Detaylı

Veritabanı Tasarımı. DML İşlemleri ve Görünümler

Veritabanı Tasarımı. DML İşlemleri ve Görünümler Veritabanı Tasarımı DML İşlemleri ve Görünümler Konular Basit bir görünümde DML işlemlerini gerçekleştiren bir sorgu yazma ve çalıştırma DML işlemleri kullanarak bir görünümü değiştirme yeteneğini kısıtlayan

Detaylı

if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

if (ad == Sabri) Console.WriteLine(Merhaba Sabri. Ne zamandır gözükmüyodun...); Koşul İfadeleri ve Akış Kontrolü Koşul ifadeleri ve akış kontrolleri programlama dillerinde her zaman en önemli yeri tutmaktadır. Yazdığımız uygulamanın hangi koşulda nasıl davranacağını belirterek bir

Detaylı

Veritabanı Uygulamaları Tasarımı

Veritabanı Uygulamaları Tasarımı Veritabanı Uygulamaları Tasarımı Veri Tabanı Veritabanı yada ingilizce database kavramı, verilerin belirli bir düzene göre depolandığı sistemlere verilen genel bir isimdir. Günümüzde özel veya kamu kuruluşların

Detaylı

FABREKA YAZILIM ELEKTRONİK DANIŞMANLIK TİC. LTD. ŞTİ.

FABREKA YAZILIM ELEKTRONİK DANIŞMANLIK TİC. LTD. ŞTİ. FABREKA YAZILIM ELEKTRONİK DANIŞMANLIK TİC. LTD. ŞTİ. VEBIAN V1.7 AKTARIM SEÇENEKLERİ DOKÜMANI 12.12.2015 İçindekiler Amaç ve Kapsam... 2 Veri Aktarım Seçenekleri... 3 Tüm Kayıtları Yeniden Aktar... 3

Detaylı

Veritabanı Tasarımı. Tablo Değiştirme

Veritabanı Tasarımı. Tablo Değiştirme Veritabanı Tasarımı Tablo Değiştirme Konular Tabloyu değiştirme neden önemlidir açıklama ALTER, DROP, RENAME ve TRUNCATE DDL komutlarının etkisini tablolar ve sütunlar üzerinde görme ALTER TABLE komutlarıadd,

Detaylı

İÇİNDEKİLER. İçindekiler. Web Uygulama Güvenliği Örnek Kaynak Kod Analizi

İÇİNDEKİLER. İçindekiler. Web Uygulama Güvenliği Örnek Kaynak Kod Analizi İÇİNDEKİLER İçindekiler Yazar Hakkında...2 Web Uygulama Güvenliği Kod Analizi...3 Çalışma Ortamı Ve Zafiyetli Web Uygulaması...4 Uygulamaya Giriş...5 Muhtemel Girdi Noktalarının Arayüzde Saptanması...6

Detaylı

Her bölüm için kısa bazı girişler yapılacak ve bölüm içerisinde anlatılacak olan konuların genel başlıkları belirtilecektir.

Her bölüm için kısa bazı girişler yapılacak ve bölüm içerisinde anlatılacak olan konuların genel başlıkları belirtilecektir. Eğitim Adı Seviye Toplam Süre : SQL 2008 Sorgular Eğitim Serisi : Başlangıç/Orta/Yüksek : 56 Saat 05 Dakika 05 Saniye Video Adedi : 209 Merhaba arkadaşlar ben İLKER IŞIK yine www.yazilimhocasi.com katkılarıyla

Detaylı

Veri Tabanı Hafta Dersi

Veri Tabanı Hafta Dersi Veri Tabanı - 1 7. Hafta Dersi Dersin Hedefleri SQL Yapısal Sorgulama Dili Veri Tanımlama Dili (DDL) Create Alert Drop Veri tanımlama dili verinin ne olduğundan çok verinin tipi ile ilgilenir. Veri tabanı

Detaylı

WEB PROGRAMLAMA II. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

WEB PROGRAMLAMA II. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu WEB PROGRAMLAMA II Öğr. Gör. M. Mutlu YAPICI Ankara Üniversitesi Elmadağ Meslek Yüksekokulu Ders İzlencesi Hafta Modüller/İçerik/Konular 1. Hafta Oturum yönetimi 2. Hafta Cookies kullanımı ve oturum yönetimi

Detaylı

Veritabanı Tasarımı. Büyük/Küçük Harf ve Karakter İşleme

Veritabanı Tasarımı. Büyük/Küçük Harf ve Karakter İşleme Veritabanı Tasarımı Konular Büyük/küçük harf dönüşümü ve karakter işleme yapan tek satır fonksiyonlarını uygulama SQL sorgularında büyük/küçük harf dönüşümü fonksiyonları: LOWER, UPPER ve INITCAP SQL sorgularında

Detaylı

İNTERNET PROGRAMCILIĞI DERSİ ÇALIŞMA SORULARI

İNTERNET PROGRAMCILIĞI DERSİ ÇALIŞMA SORULARI İNTERNET PROGRAMCILIĞI DERSİ ÇALIŞMA SORULARI 1) Aşağıdaki seçeneklerin hangisinde PHP kod yazımı doğru olarak verilmiştir? A) B) C).. D) 2) PHP ile hazırlanmış

Detaylı

Web Uygulama Güvenliği Kontrol Listesi 2010

Web Uygulama Güvenliği Kontrol Listesi 2010 Web Uygulama Güvenliği Kontrol Listesi 2010 1 www.webguvenligi.org Web uygulama güvenliği kontrol listesi 2010, OWASP-Türkiye ve Web Güvenliği Topluluğu tarafından güvenli web uygulamalarında aktif olması

Detaylı

Oracle Database 11g: Introduction to SQL

Oracle Database 11g: Introduction to SQL Oracle Database 11g: Introduction to SQL Mehmet Salih DEVECI GTECH-Kıdemli Veritabanı Yöneticisi Mehmetsalih.deveci@gtech.com.tr BÖLÜM- 1: SQL E GİRİŞ SELECT ifadesinin kabiliyetlerinin ortaya çıkarılması

Detaylı

ÇÖZÜM BİLGİSAYAR KOLAY RANDEVU RANDEVU WEB SERVİSLERİ YAZILIM FİRMALARI ENTEGRASYON KILAVUZU 22.12.2006. Sürüm: 1.0

ÇÖZÜM BİLGİSAYAR KOLAY RANDEVU RANDEVU WEB SERVİSLERİ YAZILIM FİRMALARI ENTEGRASYON KILAVUZU 22.12.2006. Sürüm: 1.0 KOLAY RANDEVU RANDEVU WEB SERVİSLERİ YAZILIM FİRMALARI ENTEGRASYON KILAVUZU 22.12.2006 Sürüm: 1.0 2006-2007 Çözüm Bilgisayar www.cozumbil.com.tr cozum@cozumbil.com.tr İÇİNDEKİLER 1.GİRİŞ...3 1.1 GENEL

Detaylı

[ Web Uygulamalarında Kayank Kod Analizi II ] [ Mehmet Dursun INCE < mehmet.ince@intelrad.com > ] [ 10 Haziran 2013 ]

[ Web Uygulamalarında Kayank Kod Analizi II ] [ Mehmet Dursun INCE < mehmet.ince@intelrad.com > ] [ 10 Haziran 2013 ] [ Web Uygulamalarında Kayank Kod Analizi II ] [ Mehmet Dursun INCE < mehmet.ince@intelrad.com > ] [ 10 Haziran 2013 ] 1 GİRİŞ Bu döküman Web Uygulamalarında Kaynak Kod Analizi isimli yazı serisinin 2.

Detaylı

Arama motoru: kuş gribinin etkileri

Arama motoru: kuş gribinin etkileri Arama motoru: Bünyesinde milyonlarca internet sayfasına ve adresine (URL) dair ipuçları ve bu sayfaların barındırdığı anahtar kelimelere sahip olan, aradığımız konuda kolayca bilgi sahibi olmak için kullandığımız

Detaylı

SQL'e Giriş. SELECT Deyimi. SQL Komutları. Yardımcı Deyimler

SQL'e Giriş. SELECT Deyimi. SQL Komutları. Yardımcı Deyimler SQL'e Giriş SQL komutları kullanılarak aşağıdaki işlemler yapılabilir: Veritabanı nesnelerinin oluşturulması ve bu nesnelerle ilgili işlemlerin yapılması Bilgilerin istenilen koşullara göre görüntülenmesi

Detaylı

Web Application Penetration Test Report

Web Application Penetration Test Report Web Application Penetration Test Report Sızma testleri (Pentest) ve zayıflık tarama (Vulnerability Assessment) birbirine benzeyen iki aşamadan oluşur. Zayıflık tarama hedef sistemdeki güvenlik açıklıklarının

Detaylı

SQL Query and Table Application

SQL Query and Table Application SQL Query and Table Application Elbistan Meslek Yüksek Okulu 2012 2013 Bahar Yarıyılı Öğr. Gör. Murat KEÇECİOĞLU 24-25 Nis. 2013 Sorgulama İşlemleri SQL de sorgulama işlemleri SELECT deyimi yardımıyla

Detaylı

Tavsiye Edilen Önhazırlık Veritabanı kavramını öğrenmek

Tavsiye Edilen Önhazırlık Veritabanı kavramını öğrenmek Ms SQL Veritabanları Yedekleme Bölüm Veritabanı Yönetimi Yazar Mustafa ÖZEN Yayın Tarihi 18.03.2004 Okunma Sayısı 1109 Tavsiye Edilen Önhazırlık Veritabanı kavramını öğrenmek Hedefler Veritabanı yönetim

Detaylı

VERİ TABANI YÖNETİM SİSTEMLERİ

VERİ TABANI YÖNETİM SİSTEMLERİ VERİ TABANI YÖNETİM SİSTEMLERİ Veri Tabanı Nedir? Sistematik erişim imkânı olan, yönetilebilir, güncellenebilir, taşınabilir, birbirleri arasında tanımlı ilişkiler bulunabilen bilgiler kümesidir. Bir kuruluşa

Detaylı

Sadece 2 İstekle MySQL Blind SQL Injection. Canberk BOLAT canberk.bolat[-at-]gmail[-dot-]com

Sadece 2 İstekle MySQL Blind SQL Injection. Canberk BOLAT canberk.bolat[-at-]gmail[-dot-]com Sadece 2 İstekle MySQL Blind SQL Injection Canberk BOLAT canberk.bolat[-at-]gmail[-dot-]com 0x01 Giriş Bu yazı blind sql injection saldırılarında tek bir karakter için minimum istek ile doğru sonuca varabilmek

Detaylı

YAZILIM GÜVENLİK TESTLERİ. H A L D U N T E R A M A N h a l d u n t e r a m a g m a i l. c o m

YAZILIM GÜVENLİK TESTLERİ. H A L D U N T E R A M A N h a l d u n t e r a m a g m a i l. c o m YAZILIM GÜVENLİK TESTLERİ H A L D U N T E R A M A N h a l d u n t e r a m a n @ g m a i l. c o m TEST NEDİR? Test, bir sistemi manuel veya otomatik yollarla deneyerek veya değerlendirerek, belirlenmiş

Detaylı

LIKE Where operatörlerinden biridir. Bir sütunda belirlenen peterne uygun arama yapar. SELECT sutun FROM tablo WHERE sutun LIKE patern;

LIKE Where operatörlerinden biridir. Bir sütunda belirlenen peterne uygun arama yapar. SELECT sutun FROM tablo WHERE sutun LIKE patern; Temel SQL Bilgisi SQL injection'ı tam olarak anlamak ve uygulayabilmek için iyi seviye sql bilgisi gerekmektedir. Aşağıdaki sorguların syntax'ı ve kısa açıklamaları sadece hatırlatma amacıyla yazılmıştır.

Detaylı

NovaFortis Yazılım Danışmanlık. E-dönüşüm adaptörü

NovaFortis Yazılım Danışmanlık. E-dönüşüm adaptörü NovaFortis Yazılım Danışmanlık E-dönüşüm adaptörü E-DÖNÜŞÜM ADAPTÖRÜ E-dönüşüm adaptörü e-fatura, e-arşiv fatura, e-defter ve e-ihracat süreçlerini yönetmek üzere tasarlanmış bir masaüstü uygulamasıdır.

Detaylı

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim' Bu Derste Öğrenecekleriniz: 1- Veri Tabanı Adı Değiştirme 2- Nesnelerin Adını Değiştirme a. Tablo Adı Değiştirme b. Alan Adı Değiştirme c. Constraint (Kısıtlama) Adı Değiştirme 3- Tablo Düzenleme Komutları

Detaylı

Aşağıdaki şemaya dikkat edin. Sorgulamalarımızı genellikle bu şemaya göre yapacağız.

Aşağıdaki şemaya dikkat edin. Sorgulamalarımızı genellikle bu şemaya göre yapacağız. Bu Derste Öğrenecekleriniz: 1- Birden Fazla Tablodan Sorgulama 2- Tablo Birleştirme işlemleri (JOIN) a. INNER JOIN b. OUTER JOIN i. LEFT OUTER JOIN ii. RIGHT OUTER JOIN iii. FULL OUTER JOIN 3- Tablo Ekleme

Detaylı

PHP'ye Giriş Türkiye PHP Grubu - Linux Şenlikleri PHP Eğitim / Tanıtım Seminerleri Ankara, 11 Mayıs 2006 Hidayet Doğan <hdogan@hido.

PHP'ye Giriş Türkiye PHP Grubu - Linux Şenlikleri PHP Eğitim / Tanıtım Seminerleri Ankara, 11 Mayıs 2006 Hidayet Doğan <hdogan@hido. PHP'ye Giriş Türkiye PHP Grubu - Linux Şenlikleri PHP Eğitim / Tanıtım Seminerleri Ankara, 11 Mayıs 2006 Hidayet Doğan PHP Nedir? Genel kullanım amaçlı bir betik/programlama dilidir.

Detaylı

Swing ve JDBC ile Database Erişimi

Swing ve JDBC ile Database Erişimi Swing ve JDBC ile Database Erişimi JDBC API, tablolanmış herhangi bir tür veriye, özellikle İlişkisel Veritabanı, erişim sağlayan bir Java API sidir. JDBC, aşağıda verilen üç etkinliğin gerçekleştirilebileceği

Detaylı

2 Kullanıcı Yönetimi ve Yetkilendirme Tüm kullanıcıların Kullanıcı Adı ve Parola bilgisi Sağlık.Net sisteminde kullandığı veriler olmalıdır.

2 Kullanıcı Yönetimi ve Yetkilendirme Tüm kullanıcıların Kullanıcı Adı ve Parola bilgisi Sağlık.Net sisteminde kullandığı veriler olmalıdır. 1 Kapsam Aşı Takip Sistemini AHBS, HSBS, HBYS ve MBYS kullanıcılarının web servis (SOAP) aracılığıyla kullanacakları metotların yapısı ve kuralları anlatılmaktadır. Servisler SSL üzerinden çalışacaktır.

Detaylı

Veritabanı Yönetimi Bilgisayarların. Keşfi Hedefler. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi

Veritabanı Yönetimi Bilgisayarların. Keşfi Hedefler. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi Hedefler Veritabanı Yönetimi Bilgisayarların Discovering Keşfi 2010 Computers 2010 Living in a Digital World Dijital Dünyada Yaşamak Veritabanı terimini tanımlamak ve bir veritabanının veri ve bilgi ile

Detaylı

Internet Programming II. Elbistan Meslek Yüksek Okulu 2014 2015 Bahar Yarıyılı

Internet Programming II. Elbistan Meslek Yüksek Okulu 2014 2015 Bahar Yarıyılı Internet Programming II Elbistan Meslek Yüksek Okulu 2014 2015 Bahar Yarıyılı Öğr. Gör. Murat KEÇECĠOĞLU 11-14 May. 2014 Form Form İşlemleri Tarayıcıdan bilgi alarak işlem gerçekleştirme FORM elemanları

Detaylı

PHP Günleri 2013#1. mysql_* Fonksiyonları Ömrünü Doldurmak Üzere. Peki Şimdi Ne Olacak? Özgür Yazılım A.Ş. www.ozguryazilim.com.tr

PHP Günleri 2013#1. mysql_* Fonksiyonları Ömrünü Doldurmak Üzere. Peki Şimdi Ne Olacak? Özgür Yazılım A.Ş. www.ozguryazilim.com.tr PHP Günleri 2013#1 mysql_* Fonksiyonları Ömrünü Doldurmak Üzere. Peki Şimdi Ne Olacak? Adil İlhan Yazılım Geliştirici @adil_ilhan www.adililhan.com adil.ilhan@ozguryazilim.com.tr PHP ve MySQL Bitirim İkili

Detaylı

(W)eb (A)pplication (F)irewall Bypass http://www.bga.com.tr bilgi@bga.com.tr

(W)eb (A)pplication (F)irewall Bypass http://www.bga.com.tr bilgi@bga.com.tr (W)eb (A)pplication (F)irewall Bypass http://www.bga.com.tr bilgi@bga.com.tr Hakkımda Mehmet Dursun İnce ( @mmetince ) Penetration Tester @BGA Vuln. Researcher @BGA mehmet.ince@bga.com.tr WAF Nedir? WAF

Detaylı

Fırat Üniversitesi Personel Bilgi Sistemi Penetrasyon(Sızma) Testi

Fırat Üniversitesi Personel Bilgi Sistemi Penetrasyon(Sızma) Testi 1st International Symposium on Digital Forensics and Security (ISDFS 13), 20-21 May 2013, Elazığ, Turkey Fırat Üniversitesi Personel Bilgi Sistemi Penetrasyon(Sızma) Testi Yücel Yılmaz Fırat Üniversitesi,

Detaylı

Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları.

Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları. Script Statik Sayfa Dinamik Sayfa Dinamik Web Sitelerinin Avantajları İçerik Yönetim Sistemi PHP Nedir? Avantajları Dezavantajları Script HTML kodları arasına yerleştirilen küçük kodlardır. Web sayfalarında

Detaylı

CODEIGNITER SEMINERI KÜTÜPHANE YAZMA GÜVENLIK ÖNLEMLERI CODEIGNITER 2.0

CODEIGNITER SEMINERI KÜTÜPHANE YAZMA GÜVENLIK ÖNLEMLERI CODEIGNITER 2.0 CODEIGNITER SEMINERI KÜTÜPHANE YAZMA GÜVENLIK ÖNLEMLERI CODEIGNITER 2.0 Özgür Web Teknolojileri Günleri 2010 Yeditepe Üniversitesi, Airties Salonu 16 Ekim 2010 (14:00 14:45) Fatih BAZMAN (http://codeigniter.gen.tr)

Detaylı

ÖĞRENME-ÖĞRETME YÖNTEM VE TEKNİKLERİ. gösterip yaptırma, uygulamalı çalışma. Anlatım, soru-cevap, gösterip yaptırma, uygulamalı çalışma.

ÖĞRENME-ÖĞRETME YÖNTEM VE TEKNİKLERİ. gösterip yaptırma, uygulamalı çalışma. Anlatım, soru-cevap, gösterip yaptırma, uygulamalı çalışma. KASIM EKİM EYLÜL AY 02.11.2009 06.11.2009 26.10.2009 0.10.2009 19.10.2009 2.10.2009 12.10.2009 16.10.2009 05.10.2009 09.10.2009 28.09.2009 02.10.2009 24.09.2009 25.09.2009 09.11.2009 1.11.2009 MODÜL: İNTERNET

Detaylı

Yaşanmış Tecrübe Paylaşımı Önce Test Et Sonra Kodla XP Pratiği

Yaşanmış Tecrübe Paylaşımı Önce Test Et Sonra Kodla XP Pratiği TBD 21. Ulusal Bilişim Kurultayı Sunumu Yaşanmış Tecrübe Paylaşımı Önce Test Et Sonra Kodla XP Pratiği Hasan ÖZKESER Bimar Bilgi İşlem Hizmetleri Aş. 5 Ekim 2004 ODTÜ Kültür ve Kongre Merkezi, Ankara 2004

Detaylı

Tanımı 46 2-4-6 Problemi 46 Şüpheci Yaklaşım 47 Tamsayı Taşması (Integer Overflow) 47 Tamsayı Taşması Java Uygulaması 48

Tanımı 46 2-4-6 Problemi 46 Şüpheci Yaklaşım 47 Tamsayı Taşması (Integer Overflow) 47 Tamsayı Taşması Java Uygulaması 48 1 Yazılım Güvenliği 2 Yazılım Güvenliği Olgunluk Modelleri 4 OpenSAMM 6 Tehdit Modelleme 7 Güvenli Kod Denetimi 8 Statik Kod Analizi 9 Sızma Testleri-Pentest 10 13 Ne Kadar Karmaşık Olabilir ki? 14 HTML

Detaylı

MICROSOFT SQL SERVER SIZMA VE GÜVENLİK TESTİ ÇALIŞMALARI

MICROSOFT SQL SERVER SIZMA VE GÜVENLİK TESTİ ÇALIŞMALARI MICROSOFT SQL SERVER SIZMA VE GÜVENLİK TESTİ ÇALIŞMALARI HALİL DALABASMAZ PENETRATION TESTING SPECIALIST ŞUBAT 2015 BGA BİLGİ GÜVENLİĞİ LİMİTED ŞİRKETİ WWW.BGA.COM.TR İÇİNDEKİLER 1. GİRİŞ... 1 2. MICROSOFT

Detaylı

VERİTABANI. SQL (Structured Query Language)

VERİTABANI. SQL (Structured Query Language) VERİTABANI SQL (Structured Query Language) SQL'de Gruplama Bir tablonun satırları gruplara ayrılarak fonksiyonların bunlara uygulanması mümkündür. Gruplara ayırmak için SELECT deyimi içerisinde GROUP BY

Detaylı

Internet Programming II

Internet Programming II Internet Programming II Elbistan Meslek Yüksek Okulu 2016 2017 Bahar Yarıyılı Öğr.Gör. Murat KEÇECĠOĞLU 1 Fonksiyonlar Değişken Kontrol Fonksiyonları isset() Fonksiyonu Parametre olarak aldığı değişken

Detaylı

Veritabanı Yönetim Sistemleri (Başarım Eniyileme Performance Tuning)

Veritabanı Yönetim Sistemleri (Başarım Eniyileme Performance Tuning) Veritabanı Yönetim Sistemleri (Başarım Eniyileme Performance Tuning) Konular SQL Başarım Eniyileme (Performance Tuning) 2 SQL Başarım Eniyileme (Performance Tuning) 3 SELECT ifadesinde * (bütün sütunlar)

Detaylı

Ortamınızda A.D. veya LDAP sistemi var ise aşağıdaki linkten KoruMail LDAP-AD isimli dokümanı inceleyebilirsiniz.

Ortamınızda A.D. veya LDAP sistemi var ise aşağıdaki linkten KoruMail LDAP-AD isimli dokümanı inceleyebilirsiniz. KoruMail, kullanıcı doğrulama işlemi için herhangi bir dizin sunucu (MS Active Directory, Novell edirectory, Sun Directory Server, OpenLDAP) olmadığı durumlarda kullanıcıları dizin sunucu yerine, MySQL

Detaylı

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır. 18 SQL SORGU DİLİ SQL (Structured Query Language) yapısal sorgu dili, veritabanı yönetim sistemlerinin standart programlama dili olarak bilinmektedir. SQL dilinin Access içinde sorgu pencerelerinde veya

Detaylı

Veritabanı Tasarımı. NOT NULL ve UNIQUE Kısıtlamaları Tanımlama

Veritabanı Tasarımı. NOT NULL ve UNIQUE Kısıtlamaları Tanımlama Veritabanı Tasarımı NOT NULL ve UNIQUE Kısıtlamaları Tanımlama NOT NULL ve UNIQUE Kısıtlamaları Tanımlama Konular Kısıtlama terimini veri bütünlüğü ile ilişkilendirerek tanımlama Sütun seviyesinde ve tablo

Detaylı

Fstab Rehberi. Ceren Çalıcı. Nisan, 2012

Fstab Rehberi. Ceren Çalıcı. Nisan, 2012 Fstab Rehberi Ceren Çalıcı Nisan, 2012 İçindekiler 1 Giriş.................................................... 2 2 Fstab a Giriş................................................ 3 3 Fstab Dosyası Nasıl

Detaylı

8 Oracle da tablo yapısı içinde otomatik artan kolon yoktur. (identity kolon

8 Oracle da tablo yapısı içinde otomatik artan kolon yoktur. (identity kolon ORACLE GİRİŞ Oracle ile SQL Server ın karşılaştıralım. 1 Oracleda veritabanı yerine kullanıcı oluşturulur. Kullanıcılar veritabanı gibi davranır. 2 Tablo oluşturma, değiştirme ve silme kodları aynı. 3

Detaylı

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1 BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1 Ekrana Metin Yazdırmak Ekranda metin yazdırmak istendiğinde print komutu kullanılır. Kullanımı aşağıda verilmiştir. Parantez içinde

Detaylı

ASP.NET 1. DURUM YÖNETİMİ. BLM 318 e-ticaret ve Uyg. Durum Yönetimi Nedir? Durum Yönetimi: Karșılaștırma İÇERİK. Sunucu-taraflı Durum Yönetimi

ASP.NET 1. DURUM YÖNETİMİ. BLM 318 e-ticaret ve Uyg. Durum Yönetimi Nedir? Durum Yönetimi: Karșılaștırma İÇERİK. Sunucu-taraflı Durum Yönetimi Nedir? olmadan Login.aspx Bilgilerinizi giriniz Durum Yönetimi İle Login.aspx Bilgilerinizi giriniz Adınız Adınız Pınar Pınar Soyadınız Soyadınız Onay Durdu Onay Durdu Gönder Gönder ASP.NET - 1 sayfa.aspx

Detaylı

Microsoft SQL Server 2008 Oracle Mysql (Ücretsiz) (Uygulamalarımızda bunu kullanacağız) Access

Microsoft SQL Server 2008 Oracle Mysql (Ücretsiz) (Uygulamalarımızda bunu kullanacağız) Access Programlamaya Giriş VERİ TABANI UYGULAMASI ÖN BİLGİ Veritabanları, verilere sistematik bir şekilde erişilebilmesine, depolanmasına ve güncellenmesine izin veren, yüksek boyutlu veriler için çeşitli optimizasyon

Detaylı

PayNet Sanal POS Teknik Dökümanı PAYNET İşlemleri PAYNET sistemi, Arena Bilgisayar A.Ş. nin, bayilerine artı değer olarak sunduğu bir online ödeme sistemidir. Bu sistem v1.0 itibariyle, sadece kredi kartları

Detaylı